(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: Test3
public class Test3 {
public static void main(String[] args) {
List l1 = List.mk(args.length);
List l2 = List.mk(args.length);
List l3 = (args.length % 2 == 0) ?
List.mk(args.length * args.length) : l2;

while (length(l1) + length(l2) + length(l3) * 5 > 0)
if (length(l1) % 2 == 1)
l1 = l1.getTail();
else if (length(l2) > length(l3))
l2 = l2.getTail();
else if (l3 == null)
break;
else {
l1 = new List(new Object(), l1);
l2 = new List(new Object(), l2);
l3 = l3.getTail();
}
}

private static int length(List list) {
int len = 0;

while (list != null) {
list = list.getTail();
len++;
}

return len;
}
}


public class List {
public Object head;
private List tail;

public List(Object head, List tail) {
this.head = head;
this.tail = tail;
}

public List getTail() {
return tail;
}

public static List mk(int len) {
List result = null;

while (len-- > 0)
result = new List(new Object(), result);

return result;
}
}

(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
Test3.main([Ljava/lang/String;)V: Graph of 207 nodes with 1 SCC.

List.mk(I)LList;: Graph of 32 nodes with 1 SCC.

Test3.length(LList;)I: Graph of 27 nodes with 1 SCC.


(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Logs:


Log for SCC 0:

Generated 19 rules for P and 3 rules for R.


Combined rules. Obtained 3 rules for P and 1 rules for R.


Filtered ground terms:


1070_0_length_Store(x1, x2) → 1070_0_length_Store(x2)
906_0_length_NULL(x1, x2, x3) → 906_0_length_NULL(x2, x3)
List(x1, x2) → List(x2)
956_0_length_Return(x1) → 956_0_length_Return

Filtered duplicate args:


906_0_length_NULL(x1, x2) → 906_0_length_NULL(x2)

Finished conversion. Obtained 3 rules for P and 1 rules for R. System has no predefined symbols.




Log for SCC 1:

Generated 23 rules for P and 3 rules for R.


Combined rules. Obtained 1 rules for P and 0 rules for R.


Filtered ground terms:


576_0_mk_Inc(x1, x2, x3) → 576_0_mk_Inc(x2, x3)
Cond_576_0_mk_Inc(x1, x2, x3, x4) → Cond_576_0_mk_Inc(x1, x3, x4)

Filtered duplicate args:


576_0_mk_Inc(x1, x2) → 576_0_mk_Inc(x2)
Cond_576_0_mk_Inc(x1, x2, x3) → Cond_576_0_mk_Inc(x1, x3)

Combined rules. Obtained 1 rules for P and 0 rules for R.


Finished conversion. Obtained 1 rules for P and 0 rules for R. System has predefined symbols.




Log for SCC 2:

Generated 111 rules for P and 87 rules for R.


Combined rules. Obtained 9 rules for P and 10 rules for R.


Filtered ground terms:


1788_0_length_ConstantStackPush(x1, x2) → 1788_0_length_ConstantStackPush(x2)
956_0_length_Return(x1, x2) → 956_0_length_Return(x2)
1716_0_length_ConstantStackPush(x1, x2) → 1716_0_length_ConstantStackPush(x2)
List(x1, x2) → List(x2)
1805_0_length_ConstantStackPush(x1, x2) → 1805_0_length_ConstantStackPush(x2)
1766_0_length_ConstantStackPush(x1, x2) → 1766_0_length_ConstantStackPush(x2)
1747_0_length_ConstantStackPush(x1, x2) → 1747_0_length_ConstantStackPush(x2)
1737_0_length_ConstantStackPush(x1, x2) → 1737_0_length_ConstantStackPush(x2)
906_0_length_NULL(x1, x2, x3, x4) → 906_0_length_NULL(x2, x3, x4)
Cond_906_0_length_NULL(x1, x2, x3, x4, x5) → Cond_906_0_length_NULL(x1, x3, x4, x5)
1047_0_getTail_Return(x1, x2) → 1047_0_getTail_Return(x2)

Filtered duplicate args:


1788_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1788_1_main_InvokeMethod(x1, x2, x4, x5)
Cond_1766_1_main_InvokeMethod2(x1, x2, x3, x4, x5, x6) → Cond_1766_1_main_InvokeMethod2(x1, x2, x4, x5, x6)
1766_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1766_1_main_InvokeMethod(x1, x3, x4, x5)
1716_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1716_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_1766_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_1766_1_main_InvokeMethod1(x1, x2, x4, x5, x6)
Cond_1805_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_1805_1_main_InvokeMethod1(x1, x2, x3, x4, x6, x7)
1805_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1805_1_main_InvokeMethod(x1, x2, x3, x5, x6)
Cond_1805_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1805_1_main_InvokeMethod(x1, x2, x3, x4, x6, x7)
Cond_1766_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1766_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_1747_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1747_1_main_InvokeMethod(x1, x2, x3, x4, x6, x7)
1747_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1747_1_main_InvokeMethod(x1, x2, x3, x5, x6)
Cond_1737_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1737_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
1737_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1737_1_main_InvokeMethod(x1, x2, x4, x5, x6)
906_0_length_NULL(x1, x2, x3) → 906_0_length_NULL(x2, x3)
Cond_906_0_length_NULL(x1, x2, x3, x4) → Cond_906_0_length_NULL(x1, x3, x4)

Filtered unneeded arguments:


Cond_1747_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1747_1_main_InvokeMethod(x1, x2, x3, x4, x6)
Cond_1805_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1805_1_main_InvokeMethod(x1, x2, x3, x4, x6)
Cond_1805_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_1805_1_main_InvokeMethod1(x1, x2, x3, x4, x6)

Combined rules. Obtained 9 rules for P and 9 rules for R.


Finished conversion. Obtained 9 rules for P and 9 rules for R. System has predefined symbols.


(4) Complex Obligation (AND)

(5) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
906_0_length_NULL(NULL) → 956_0_length_Return

The integer pair graph contains the following rules and edges:
(0): 1070_0_LENGTH_STORE(x0[0]) → 906_0_LENGTH_NULL(x0[0])
(1): 906_0_LENGTH_NULL(java.lang.Object(List(x0[1]))) → 906_0_LENGTH_NULL(x0[1])
(2): 906_0_LENGTH_NULL(java.lang.Object(List(x0[2]))) → 1070_0_LENGTH_STORE(x0[2])

(0) -> (1), if ((x0[0]* java.lang.Object(List(x0[1]))))


(0) -> (2), if ((x0[0]* java.lang.Object(List(x0[2]))))


(1) -> (1), if ((x0[1]* java.lang.Object(List(x0[1]'))))


(1) -> (2), if ((x0[1]* java.lang.Object(List(x0[2]))))


(2) -> (0), if ((x0[2]* x0[0]))



The set Q consists of the following terms:
906_0_length_NULL(NULL)

(6) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1070_0_LENGTH_STORE(x0[0]) → 906_0_LENGTH_NULL(x0[0])
906_0_LENGTH_NULL(java.lang.Object(List(x0[1]))) → 906_0_LENGTH_NULL(x0[1])
906_0_LENGTH_NULL(java.lang.Object(List(x0[2]))) → 1070_0_LENGTH_STORE(x0[2])

The TRS R consists of the following rules:

906_0_length_NULL(NULL) → 956_0_length_Return

The set Q consists of the following terms:

906_0_length_NULL(NULL)

We have to consider all minimal (P,Q,R)-chains.

(8) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1070_0_LENGTH_STORE(x0[0]) → 906_0_LENGTH_NULL(x0[0])
906_0_LENGTH_NULL(java.lang.Object(List(x0[1]))) → 906_0_LENGTH_NULL(x0[1])
906_0_LENGTH_NULL(java.lang.Object(List(x0[2]))) → 1070_0_LENGTH_STORE(x0[2])

R is empty.
The set Q consists of the following terms:

906_0_length_NULL(NULL)

We have to consider all minimal (P,Q,R)-chains.

(10) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

906_0_length_NULL(NULL)

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1070_0_LENGTH_STORE(x0[0]) → 906_0_LENGTH_NULL(x0[0])
906_0_LENGTH_NULL(java.lang.Object(List(x0[1]))) → 906_0_LENGTH_NULL(x0[1])
906_0_LENGTH_NULL(java.lang.Object(List(x0[2]))) → 1070_0_LENGTH_STORE(x0[2])

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 906_0_LENGTH_NULL(java.lang.Object(List(x0[2]))) → 1070_0_LENGTH_STORE(x0[2])
    The graph contains the following edges 1 > 1

  • 906_0_LENGTH_NULL(java.lang.Object(List(x0[1]))) → 906_0_LENGTH_NULL(x0[1])
    The graph contains the following edges 1 > 1

  • 1070_0_LENGTH_STORE(x0[0]) → 906_0_LENGTH_NULL(x0[0])
    The graph contains the following edges 1 >= 1

(13) YES

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 576_0_MK_INC(x0[0]) → COND_576_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_576_0_MK_INC(TRUE, x0[1]) → 576_0_MK_INC(x0[1] + -1)

(0) -> (1), if ((x0[0] > 0* TRUE)∧(x0[0]* x0[1]))


(1) -> (0), if ((x0[1] + -1* x0[0]))



The set Q is empty.

(15) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 576_0_MK_INC(x0) → COND_576_0_MK_INC(>(x0, 0), x0) the following chains were created:
  • We consider the chain 576_0_MK_INC(x0[0]) → COND_576_0_MK_INC(>(x0[0], 0), x0[0]), COND_576_0_MK_INC(TRUE, x0[1]) → 576_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]576_0_MK_INC(x0[0])≥NonInfC∧576_0_MK_INC(x0[0])≥COND_576_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE576_0_MK_INC(x0[0])≥NonInfC∧576_0_MK_INC(x0[0])≥COND_576_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)







For Pair COND_576_0_MK_INC(TRUE, x0) → 576_0_MK_INC(+(x0, -1)) the following chains were created:
  • We consider the chain COND_576_0_MK_INC(TRUE, x0[1]) → 576_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (7)    (COND_576_0_MK_INC(TRUE, x0[1])≥NonInfC∧COND_576_0_MK_INC(TRUE, x0[1])≥576_0_MK_INC(+(x0[1], -1))∧(UIncreasing(576_0_MK_INC(+(x0[1], -1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(576_0_MK_INC(+(x0[1], -1))), ≥)∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(576_0_MK_INC(+(x0[1], -1))), ≥)∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(576_0_MK_INC(+(x0[1], -1))), ≥)∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(576_0_MK_INC(+(x0[1], -1))), ≥)∧0 = 0∧[2 + (-1)bso_11] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 576_0_MK_INC(x0) → COND_576_0_MK_INC(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_576_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

  • COND_576_0_MK_INC(TRUE, x0) → 576_0_MK_INC(+(x0, -1))
    • ((UIncreasing(576_0_MK_INC(+(x0[1], -1))), ≥)∧0 = 0∧[2 + (-1)bso_11] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(576_0_MK_INC(x1)) = [2]x1   
POL(COND_576_0_MK_INC(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   

The following pairs are in P>:

COND_576_0_MK_INC(TRUE, x0[1]) → 576_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

576_0_MK_INC(x0[0]) → COND_576_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

576_0_MK_INC(x0[0]) → COND_576_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

(16) Complex Obligation (AND)

(17) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 576_0_MK_INC(x0[0]) → COND_576_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(18) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(19) TRUE

(20) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_576_0_MK_INC(TRUE, x0[1]) → 576_0_MK_INC(x0[1] + -1)


The set Q is empty.

(21) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(22) TRUE

(23) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
1716_0_length_ConstantStackPush(x0) → 906_0_length_NULL(0, x0)
906_0_length_NULL(x0, NULL) → 956_0_length_Return(x0)
906_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_906_0_length_NULL(x1 >= 0, x1, java.lang.Object(List(x0)))
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 906_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(0): 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(1): 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(x4[1] >= 0 && x0[1] >= 0, 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(2): COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(3): 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(4): COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(5): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(6): COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(7): 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(8): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(9): COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(10): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(x4[10] > x0[10], 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
(11): COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
(12): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(1 = x0[12] % 2, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
(13): COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
(14): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(x0[14] % 2 = 1), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])

(0) -> (1), if ((1716_0_length_ConstantStackPush(x2[0]) →* 956_0_length_Return(x0[1]))∧(x1[0]* x1[1])∧(x3[0]* x3[1])∧(x0[0]* x4[1])∧(x2[0]* x2[1]))


(1) -> (2), if ((x4[1] >= 0 && x0[1] >= 0* TRUE)∧(956_0_length_Return(x0[1]) →* 956_0_length_Return(x0[2]))∧(x1[1]* x1[2])∧(x3[1]* x3[2])∧(x4[1]* x4[2])∧(x2[1]* x2[2]))


(2) -> (3), if ((1716_0_length_ConstantStackPush(x3[2]) →* 956_0_length_Return(x0[3]))∧(x1[2]* x1[3])∧(x2[2]* x2[3])∧(x4[2] + x0[2]* x4[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5* TRUE)∧(956_0_length_Return(x0[3]) →* 956_0_length_Return(x0[4]))∧(x1[3]* x1[4])∧(x2[3]* x2[4])∧(x4[3]* x4[4])∧(x3[3]* x3[4]))


(4) -> (5), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[5]))∧(x2[4]* x2[5])∧(x3[4]* x3[5])∧(x1[4]* x1[5]))


(4) -> (12), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[12]))∧(x2[4]* x2[12])∧(x3[4]* x3[12])∧(x1[4]* java.lang.Object(List(x1[12]))))


(4) -> (14), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[14]))∧(x2[4]* x2[14])∧(x3[4]* x3[14])∧(x1[4]* x1[14]))


(5) -> (6), if ((0 = x0[5] % 2* TRUE)∧(956_0_length_Return(x0[5]) →* 956_0_length_Return(x0[6]))∧(x2[5]* x2[6])∧(x3[5]* x3[6])∧(x1[5]* x1[6]))


(6) -> (7), if ((1716_0_length_ConstantStackPush(x2[6]) →* 956_0_length_Return(x0[7]))∧(x1[6]* x1[7])∧(x3[6]* x3[7])∧(x2[6]* x2[7]))


(7) -> (8), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[8]))∧(x1[7]* x1[8])∧(x2[7]* x2[8])∧(x0[7]* x4[8])∧(x3[7]* java.lang.Object(List(x3[8]))))


(7) -> (10), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[10]))∧(x1[7]* x1[10])∧(x2[7]* java.lang.Object(List(x2[10])))∧(x0[7]* x4[10])∧(x3[7]* x3[10]))


(8) -> (9), if ((x4[8] <= x0[8]* TRUE)∧(956_0_length_Return(x0[8]) →* 956_0_length_Return(x0[9]))∧(x1[8]* x1[9])∧(x2[8]* x2[9])∧(x4[8]* x4[9])∧(java.lang.Object(List(x3[8])) →* java.lang.Object(List(x3[9]))))


(9) -> (0), if ((1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 956_0_length_Return(x0[0]))∧(java.lang.Object(List(x2[9])) →* x2[0])∧(x3[9]* x3[0])∧(java.lang.Object(List(x1[9])) →* x1[0]))


(10) -> (11), if ((x4[10] > x0[10]* TRUE)∧(956_0_length_Return(x0[10]) →* 956_0_length_Return(x0[11]))∧(x1[10]* x1[11])∧(java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11])))∧(x4[10]* x4[11])∧(x3[10]* x3[11]))


(11) -> (0), if ((1716_0_length_ConstantStackPush(x1[11]) →* 956_0_length_Return(x0[0]))∧(x2[11]* x2[0])∧(x3[11]* x3[0])∧(x1[11]* x1[0]))


(12) -> (13), if ((1 = x0[12] % 2* TRUE)∧(956_0_length_Return(x0[12]) →* 956_0_length_Return(x0[13]))∧(x2[12]* x2[13])∧(x3[12]* x3[13])∧(java.lang.Object(List(x1[12])) →* java.lang.Object(List(x1[13]))))


(13) -> (0), if ((1716_0_length_ConstantStackPush(x1[13]) →* 956_0_length_Return(x0[0]))∧(x2[13]* x2[0])∧(x3[13]* x3[0])∧(x1[13]* x1[0]))


(14) -> (6), if ((!(x0[14] % 2 = 1) →* TRUE)∧(956_0_length_Return(x0[14]) →* 956_0_length_Return(x0[6]))∧(x2[14]* x2[6])∧(x3[14]* x3[6])∧(x1[14]* x1[6]))



The set Q consists of the following terms:
1716_0_length_ConstantStackPush(x0)
906_0_length_NULL(x0, NULL)
906_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_906_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(24) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, x1) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
  • We consider the chain COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (1)    (1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=956_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]1716_0_length_ConstantStackPush(x2[0])=956_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (1) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (2)    (1=x0906_0_length_NULL(x0, x1[9])=956_0_length_Return(x0[0])∧1=x1906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(x1[9])), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x0, x1[9])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (3)    (956_0_length_Return(x2)=956_0_length_Return(x0[0])∧1=x21=x1906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (4)    (Cond_906_0_length_NULL(>=(x4, 0), x4, java.lang.Object(List(x3)))=956_0_length_Return(x0[0])∧1=x41=x1906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (3) using rules (I), (II), (III) which results in the following new constraint:

    (5)    (1=x1906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(x2[9])))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (4) using rule (VII) which results in the following new constraint:

    (6)    (>=(x4, 0)=x10java.lang.Object(List(x3))=x11Cond_906_0_length_NULL(x10, x4, x11)=956_0_length_Return(x0[0])∧1=x41=x1906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (7)    (956_0_length_Return(x5)=956_0_length_Return(x0[1])∧1=x51716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (8)    (Cond_906_0_length_NULL(>=(x7, 0), x7, java.lang.Object(List(x6)))=956_0_length_Return(x0[1])∧1=x71716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x6))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x6)))))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (7) using rules (I), (II), (IV) which results in the following new constraint:

    (9)    (1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (8) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (10)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x6)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x6))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x6)))))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (11)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x1, x2[9])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (12)    (956_0_length_Return(x12)=956_0_length_Return(x0[1])∧>=(x4, 0)=x10java.lang.Object(List(x3))=x11Cond_906_0_length_NULL(x10, x4, x11)=956_0_length_Return(x0[0])∧1=x41=x121716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (13)    (Cond_906_0_length_NULL(>=(x14, 0), x14, java.lang.Object(List(x13)))=956_0_length_Return(x0[1])∧>=(x4, 0)=x10java.lang.Object(List(x3))=x11Cond_906_0_length_NULL(x10, x4, x11)=956_0_length_Return(x0[0])∧1=x41=x141716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x13))))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x13)))))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (12) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (14)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x3)))=956_0_length_Return(x0[0]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (13) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (15)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x3)))=956_0_length_Return(x0[0])∧Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x13)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x13))))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x13)))))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (10) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (16)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (17)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (15) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (18)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (11) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (19)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (17) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (20)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (16) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (21)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (18) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (19) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (20) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (24)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (26)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (27)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (24) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (28)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (29)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (26) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (30)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



  • We consider the chain COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (31)    (1716_0_length_ConstantStackPush(x1[11])=956_0_length_Return(x0[0])∧x2[11]=x2[0]x3[11]=x3[0]x1[11]=x1[0]1716_0_length_ConstantStackPush(x2[0])=956_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (31) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (32)    (0=x17906_0_length_NULL(x17, x1[11])=956_0_length_Return(x0[0])∧0=x18906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], x1[11])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], x1[11])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[11], x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (32) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x17, x1[11])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (33)    (956_0_length_Return(x19)=956_0_length_Return(x0[0])∧0=x190=x18906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (34)    (Cond_906_0_length_NULL(>=(x21, 0), x21, java.lang.Object(List(x20)))=956_0_length_Return(x0[0])∧0=x210=x18906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x20)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x20)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x20)), x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (33) using rules (I), (II), (III) which results in the following new constraint:

    (35)    (0=x18906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[11], 0, x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (34) using rule (VII) which results in the following new constraint:

    (36)    (>=(x21, 0)=x27java.lang.Object(List(x20))=x28Cond_906_0_length_NULL(x27, x21, x28)=956_0_length_Return(x0[0])∧0=x210=x18906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x20)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x20)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x20)), x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (35) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (37)    (956_0_length_Return(x22)=956_0_length_Return(x0[1])∧0=x221716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[11], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (38)    (Cond_906_0_length_NULL(>=(x24, 0), x24, java.lang.Object(List(x23)))=956_0_length_Return(x0[1])∧0=x241716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x23)), x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x23)), x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x23))), NULL, x3[11], 0, java.lang.Object(List(x23)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (37) using rules (I), (II), (IV) which results in the following new constraint:

    (39)    (1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[11], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (38) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (40)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x23)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x23)), x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x23)), x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x23))), NULL, x3[11], 0, java.lang.Object(List(x23)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (39) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (41)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (36) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x18, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (42)    (956_0_length_Return(x29)=956_0_length_Return(x0[1])∧>=(x21, 0)=x27java.lang.Object(List(x20))=x28Cond_906_0_length_NULL(x27, x21, x28)=956_0_length_Return(x0[0])∧0=x210=x291716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x20)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x20)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x20)), x3[11], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (43)    (Cond_906_0_length_NULL(>=(x31, 0), x31, java.lang.Object(List(x30)))=956_0_length_Return(x0[1])∧>=(x21, 0)=x27java.lang.Object(List(x20))=x28Cond_906_0_length_NULL(x27, x21, x28)=956_0_length_Return(x0[0])∧0=x210=x311716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x30)), x3[11], java.lang.Object(List(x20)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x30)), x3[11], java.lang.Object(List(x20)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x30))), java.lang.Object(List(x20)), x3[11], x0[0], java.lang.Object(List(x30)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (42) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (44)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x20)))=956_0_length_Return(x0[0]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x20)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x20)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x20)), x3[11], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (43) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (45)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x20)))=956_0_length_Return(x0[0])∧Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x30)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x30)), x3[11], java.lang.Object(List(x20)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x30)), x3[11], java.lang.Object(List(x20)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x30))), java.lang.Object(List(x20)), x3[11], x0[0], java.lang.Object(List(x30)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (46)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (47)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (45) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (41) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (47) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (50)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (46) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (51)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (52)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (53)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (50) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (54)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (51) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (52) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (53) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (57)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (54) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (58)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (55) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (59)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (60)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



  • We consider the chain COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (61)    (1716_0_length_ConstantStackPush(x1[13])=956_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]1716_0_length_ConstantStackPush(x2[0])=956_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (61) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (62)    (0=x34906_0_length_NULL(x34, x1[13])=956_0_length_Return(x0[0])∧0=x35906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[13], x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (62) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x34, x1[13])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (63)    (956_0_length_Return(x36)=956_0_length_Return(x0[0])∧0=x360=x35906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (64)    (Cond_906_0_length_NULL(>=(x38, 0), x38, java.lang.Object(List(x37)))=956_0_length_Return(x0[0])∧0=x380=x35906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (63) using rules (I), (II), (III) which results in the following new constraint:

    (65)    (0=x35906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[13], 0, x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (64) using rule (VII) which results in the following new constraint:

    (66)    (>=(x38, 0)=x44java.lang.Object(List(x37))=x45Cond_906_0_length_NULL(x44, x38, x45)=956_0_length_Return(x0[0])∧0=x380=x35906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (65) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (67)    (956_0_length_Return(x39)=956_0_length_Return(x0[1])∧0=x391716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (68)    (Cond_906_0_length_NULL(>=(x41, 0), x41, java.lang.Object(List(x40)))=956_0_length_Return(x0[1])∧0=x411716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[13], 0, java.lang.Object(List(x40)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (67) using rules (I), (II), (IV) which results in the following new constraint:

    (69)    (1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (68) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (70)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x40)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[13], 0, java.lang.Object(List(x40)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (69) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (71)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (66) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x35, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (72)    (956_0_length_Return(x46)=956_0_length_Return(x0[1])∧>=(x38, 0)=x44java.lang.Object(List(x37))=x45Cond_906_0_length_NULL(x44, x38, x45)=956_0_length_Return(x0[0])∧0=x380=x461716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[13], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (73)    (Cond_906_0_length_NULL(>=(x48, 0), x48, java.lang.Object(List(x47)))=956_0_length_Return(x0[1])∧>=(x38, 0)=x44java.lang.Object(List(x37))=x45Cond_906_0_length_NULL(x44, x38, x45)=956_0_length_Return(x0[0])∧0=x380=x481716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[13], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (72) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (74)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=956_0_length_Return(x0[0]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[13], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (73) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (75)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=956_0_length_Return(x0[0])∧Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x47)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[13], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (70) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (76)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (74) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (77)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (75) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (78)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (71) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (79)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (77) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (80)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (76) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (81)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (78) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (82)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (79) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (83)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (80) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (84)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (81) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (82) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (86)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (83) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (87)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (84) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (88)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (89)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



    We simplified constraint (86) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (90)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)







For Pair 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x3, x4, x2) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4, 0), >=(x0, 0)), 956_0_length_Return(x0), x1, x3, x4, x2) the following chains were created:
  • We consider the chain 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (91)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE956_0_length_Return(x0[1])=956_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (91) using rules (I), (II), (IV) which results in the following new constraint:

    (92)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (92) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (93)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x3[1] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (93) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (94)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x3[1] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (94) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x3[1] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (95) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (96)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)







For Pair COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x1, x3, x4, x2) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3) the following chains were created:
  • We consider the chain 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (97)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE956_0_length_Return(x0[1])=956_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]1716_0_length_ConstantStackPush(x3[2])=956_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (97) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (98)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE906_0_length_NULL(0, x3[2])=956_0_length_Return(x0[3]) ⇒ COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (98) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (99)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [bni_94]x3[2] ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (99) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (100)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [bni_94]x3[2] ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (100) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [bni_94]x3[2] ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (101) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)







For Pair 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x2, x4, x3) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4, 0), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 956_0_length_Return(x0), x1, x2, x4, x3) the following chains were created:
  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (103)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (103) using rules (I), (II), (IV) which results in the following new constraint:

    (104)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (104) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (105)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] + [bni_96]x3[3] ≥ 0∧[(-1)bso_97] ≥ 0)



    We simplified constraint (105) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (106)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] + [bni_96]x3[3] ≥ 0∧[(-1)bso_97] ≥ 0)



    We simplified constraint (106) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] + [bni_96]x3[3] ≥ 0∧[(-1)bso_97] ≥ 0)



    We simplified constraint (107) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)







For Pair COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x1, x2, x4, x3) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

    (109)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (109) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (110)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(0, x1[4])=956_0_length_Return(x0[5]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (110) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (111)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (111) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (112)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (112) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (113)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (113) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (114)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)



  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) which results in the following constraint:

    (115)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[12])∧x2[4]=x2[12]x3[4]=x3[12]x1[4]=java.lang.Object(List(x1[12])) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (115) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (116)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(1, x1[12])=956_0_length_Return(x0[12]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), java.lang.Object(List(x1[12])), x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), java.lang.Object(List(x1[12])), x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[12]))), x2[3], x3[3], java.lang.Object(List(x1[12])))∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (116) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (117)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (117) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (118)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (118) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (119)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (119) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (120)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)



  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) which results in the following constraint:

    (121)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[14])∧x2[4]=x2[14]x3[4]=x3[14]x1[4]=x1[14]COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (121) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (122)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(0, x1[4])=956_0_length_Return(x0[14]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (122) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (123)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (123) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (124)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (124) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (125)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (125) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (126)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)







For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, x1) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 956_0_length_Return(x0), x2, x3, x1) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (127)    (=(0, %(x0[5], 2))=TRUE956_0_length_Return(x0[5])=956_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (127) using rules (I), (II), (IV) which results in the following new constraint:

    (128)    (=(0, %(x0[5], 2))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (128) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (129)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_100 + (-1)Bound*bni_100] + [bni_100]x3[5] ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (129) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (130)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_100 + (-1)Bound*bni_100] + [bni_100]x3[5] ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (130) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (131)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_100 + (-1)Bound*bni_100] + [bni_100]x3[5] ≥ 0∧[(-1)bso_101] ≥ 0)



    We simplified constraint (131) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (132)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)







For Pair COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x2, x3, x1) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2), x1, x3, x2) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (133)    (=(0, %(x0[5], 2))=TRUE956_0_length_Return(x0[5])=956_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (133) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (134)    (=(0, %(x0[5], 2))=TRUE906_0_length_NULL(0, x2[6])=956_0_length_Return(x0[7]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (134) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (135)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x3[5] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (135) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (136)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x3[5] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (136) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (137)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x3[5] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (137) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (138)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)



  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (139)    (!(=(%(x0[14], 2), 1))=TRUE956_0_length_Return(x0[14])=956_0_length_Return(x0[6])∧x2[14]=x2[6]x3[14]=x3[6]x1[14]=x1[6]1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (139) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (140)    (!(=(%(x0[14], 2), 1))=TRUE906_0_length_NULL(0, x2[6])=956_0_length_Return(x0[7]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[14]), x2[6], x3[14], x1[14])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[14]), x2[6], x3[14], x1[14])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[14], x3[14], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (140) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (141)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x3[14] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (141) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (142)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x3[14] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (142) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (143)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_102 + (-1)Bound*bni_102] + [bni_102]x3[14] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (143) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (144)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x3, x2) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3), x1, x2, x0, x3) the following chains were created:
  • We consider the chain COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) which results in the following constraint:

    (145)    (1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]1716_0_length_ConstantStackPush(x3[7])=956_0_length_Return(x0[8])∧x1[7]=x1[8]x2[7]=x2[8]x0[7]=x4[8]x3[7]=java.lang.Object(List(x3[8])) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (145) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (146)    (0=x51906_0_length_NULL(x51, x2[6])=956_0_length_Return(x0[7])∧1=x52906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], x2[6], x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (146) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x51, x2[6])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (147)    (956_0_length_Return(x53)=956_0_length_Return(x0[7])∧0=x531=x52906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (148)    (Cond_906_0_length_NULL(>=(x55, 0), x55, java.lang.Object(List(x54)))=956_0_length_Return(x0[7])∧0=x551=x52906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x54)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x54)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x54)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (147) using rules (I), (II), (III) which results in the following new constraint:

    (149)    (1=x52906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, 0, java.lang.Object(List(x3[8])))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (148) using rule (VII) which results in the following new constraint:

    (150)    (>=(x55, 0)=x61java.lang.Object(List(x54))=x62Cond_906_0_length_NULL(x61, x55, x62)=956_0_length_Return(x0[7])∧0=x551=x52906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x54)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x54)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x54)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (149) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) which results in the following new constraints:

    (151)    (956_0_length_Return(x56)=956_0_length_Return(x0[8])∧1=x561788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (152)    (Cond_906_0_length_NULL(>=(x58, 0), x58, java.lang.Object(List(x57)))=956_0_length_Return(x0[8])∧1=x581788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x57))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x57)))))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (151) using rules (I), (II), (IV) which results in the following new constraint:

    (153)    (1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (152) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (154)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x57)))=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x57))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x57)))))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (153) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (155)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (150) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x52, x3[8])=956_0_length_Return(x0[8]) which results in the following new constraints:

    (156)    (956_0_length_Return(x63)=956_0_length_Return(x0[8])∧>=(x55, 0)=x61java.lang.Object(List(x54))=x62Cond_906_0_length_NULL(x61, x55, x62)=956_0_length_Return(x0[7])∧0=x551=x631788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x54)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (157)    (Cond_906_0_length_NULL(>=(x65, 0), x65, java.lang.Object(List(x64)))=956_0_length_Return(x0[8])∧>=(x55, 0)=x61java.lang.Object(List(x54))=x62Cond_906_0_length_NULL(x61, x55, x62)=956_0_length_Return(x0[7])∧0=x551=x651788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x64))))), x1[6], java.lang.Object(List(x54)), x0[7], java.lang.Object(List(java.lang.Object(List(x64)))))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (156) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (158)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x54)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (157) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (159)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=956_0_length_Return(x0[7])∧Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x64)))=956_0_length_Return(x0[8]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x64))))), x1[6], java.lang.Object(List(x54)), x0[7], java.lang.Object(List(java.lang.Object(List(x64)))))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (154) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (160)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (158) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (161)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (159) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (162)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (155) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (163)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (161) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (164)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (160) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (165)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (162) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (166)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (163) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (167)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (164) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (168)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (165) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (169)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (166) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (170)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (167) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (171)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (168) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (172)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (169) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (173)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (170) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (174)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



  • We consider the chain COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) which results in the following constraint:

    (175)    (1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]1716_0_length_ConstantStackPush(x3[7])=956_0_length_Return(x0[10])∧x1[7]=x1[10]x2[7]=java.lang.Object(List(x2[10]))∧x0[7]=x4[10]x3[7]=x3[10]1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (175) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (176)    (0=x68906_0_length_NULL(x68, x3[7])=956_0_length_Return(x0[10])∧1=x69906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[6], java.lang.Object(List(x2[10])), x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (176) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x68, x3[7])=956_0_length_Return(x0[10]) which results in the following new constraints:

    (177)    (956_0_length_Return(x70)=956_0_length_Return(x0[10])∧0=x701=x69906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[10])), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (178)    (Cond_906_0_length_NULL(>=(x72, 0), x72, java.lang.Object(List(x71)))=956_0_length_Return(x0[10])∧0=x721=x69906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x71))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x71)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (177) using rules (I), (II), (IV) which results in the following new constraint:

    (179)    (1=x69906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[10])), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (178) using rule (VII) which results in the following new constraint:

    (180)    (>=(x72, 0)=x78java.lang.Object(List(x71))=x79Cond_906_0_length_NULL(x78, x72, x79)=956_0_length_Return(x0[10])∧0=x721=x69906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x71))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x71)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (179) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (181)    (956_0_length_Return(x73)=956_0_length_Return(x0[7])∧1=x731788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (182)    (Cond_906_0_length_NULL(>=(x75, 0), x75, java.lang.Object(List(x74)))=956_0_length_Return(x0[7])∧1=x751788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x74)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x74)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x74)))), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (181) using rules (I), (II), (III) which results in the following new constraint:

    (183)    (1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), 1, NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (182) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (184)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x74)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x74)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x74)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x74)))), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (183) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (185)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (180) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x69, x2[10])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (186)    (956_0_length_Return(x80)=956_0_length_Return(x0[7])∧>=(x72, 0)=x78java.lang.Object(List(x71))=x79Cond_906_0_length_NULL(x78, x72, x79)=956_0_length_Return(x0[10])∧0=x721=x801788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x71))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(x71)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (187)    (Cond_906_0_length_NULL(>=(x82, 0), x82, java.lang.Object(List(x81)))=956_0_length_Return(x0[7])∧>=(x72, 0)=x78java.lang.Object(List(x71))=x79Cond_906_0_length_NULL(x78, x72, x79)=956_0_length_Return(x0[10])∧0=x721=x821788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(java.lang.Object(List(x81)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(java.lang.Object(List(x81)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x71))), x1[6], java.lang.Object(List(java.lang.Object(List(x81)))), x0[7], java.lang.Object(List(x71)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (186) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (188)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x71)))=956_0_length_Return(x0[10]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x71))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(x71)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (187) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (189)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x71)))=956_0_length_Return(x0[10])∧Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x81)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(java.lang.Object(List(x81)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x71)), java.lang.Object(List(java.lang.Object(List(x81)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x71))), x1[6], java.lang.Object(List(java.lang.Object(List(x81)))), x0[7], java.lang.Object(List(x71)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (184) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (190)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (188) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (191)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (189) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (192)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (185) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (193)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (191) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (194)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (190) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (195)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (192) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (196)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (193) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (197)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (194) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (198)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (195) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (199)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (196) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (200)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (197) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (201)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (198) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (202)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (199) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (203)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (200) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (204)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)







For Pair 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4, x0), 956_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) which results in the following constraint:

    (205)    (<=(x4[8], x0[8])=TRUE956_0_length_Return(x0[8])=956_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9])) ⇒ 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (205) using rules (I), (II), (IV) which results in the following new constraint:

    (206)    (<=(x4[8], x0[8])=TRUE1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (206) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (207)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_106] + [(2)bni_106]x3[8] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (207) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (208)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_106] + [(2)bni_106]x3[8] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (208) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (209)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_106] + [(2)bni_106]x3[8] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (209) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (210)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)







For Pair COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1))) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (211)    (<=(x4[8], x0[8])=TRUE956_0_length_Return(x0[8])=956_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9]))∧1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=956_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (211) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (212)    (<=(x4[8], x0[8])=TRUE1=x85906_0_length_NULL(x85, x1[9])=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (212) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x85, x1[9])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (213)    (956_0_length_Return(x86)=956_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x86COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))


    (214)    (Cond_906_0_length_NULL(>=(x88, 0), x88, java.lang.Object(List(x87)))=956_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x88COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), java.lang.Object(List(x87)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), java.lang.Object(List(x87)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x87))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x87)))))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (213) using rules (I), (II), (IV) which results in the following new constraint:

    (215)    (<=(x4[8], x0[8])=TRUECOND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (214) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (216)    (<=(x4[8], x0[8])=TRUECond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x87)))=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), java.lang.Object(List(x87)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[8]), java.lang.Object(List(x87)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x87))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x87)))))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (215) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (217)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_108] + [(2)bni_108]x3[8] ≥ 0∧[1 + (-1)bso_109] + x3[8] ≥ 0)



    We simplified constraint (216) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (218)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_108] + [(2)bni_108]x3[8] ≥ 0∧[1 + (-1)bso_109] + x3[8] ≥ 0)



    We simplified constraint (217) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (219)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_108] + [(2)bni_108]x3[8] ≥ 0∧[1 + (-1)bso_109] + x3[8] ≥ 0)



    We simplified constraint (218) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (220)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_108] + [(2)bni_108]x3[8] ≥ 0∧[1 + (-1)bso_109] + x3[8] ≥ 0)



    We simplified constraint (219) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (221)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_108] + [(2)bni_108]x3[8] ≥ 0∧[1 + (-1)bso_109] + x3[8] ≥ 0)



    We simplified constraint (220) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (222)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_108] + [(2)bni_108]x3[8] ≥ 0∧[1 + (-1)bso_109] + x3[8] ≥ 0)



    We simplified constraint (221) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (223)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_108] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_109] ≥ 0)



    We simplified constraint (222) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (224)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_108] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_109] ≥ 0)







For Pair 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4, x0), 956_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]), COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]) which results in the following constraint:

    (225)    (>(x4[10], x0[10])=TRUE956_0_length_Return(x0[10])=956_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x4[10]=x4[11]x3[10]=x3[11]1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥))



    We simplified constraint (225) using rules (I), (II), (IV) which results in the following new constraint:

    (226)    (>(x4[10], x0[10])=TRUE1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥))



    We simplified constraint (226) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (227)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[10] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (227) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (228)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[10] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (228) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (229)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[10] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (229) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (230)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)







For Pair COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]), COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (231)    (>(x4[10], x0[10])=TRUE956_0_length_Return(x0[10])=956_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x4[10]=x4[11]x3[10]=x3[11]1716_0_length_ConstantStackPush(x1[11])=956_0_length_Return(x0[0])∧x2[11]=x2[0]x3[11]=x3[0]x1[11]=x1[0]COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (231) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (232)    (>(x4[10], x0[10])=TRUE0=x91906_0_length_NULL(x91, x1[11])=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[10], x3[10], x1[11])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (232) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x91, x1[11])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (233)    (956_0_length_Return(x92)=956_0_length_Return(x0[0])∧>(x4[10], x0[10])=TRUE0=x92COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x2[10], x3[10], NULL)∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))


    (234)    (Cond_906_0_length_NULL(>=(x94, 0), x94, java.lang.Object(List(x93)))=956_0_length_Return(x0[0])∧>(x4[10], x0[10])=TRUE0=x94COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x93)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x93)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x93))), x2[10], x3[10], java.lang.Object(List(x93)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (233) using rules (I), (II), (IV) which results in the following new constraint:

    (235)    (>(x4[10], x0[10])=TRUECOND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x2[10], x3[10], NULL)∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (234) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (236)    (>(x4[10], x0[10])=TRUECond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x93)))=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x93)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x93)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x93))), x2[10], x3[10], java.lang.Object(List(x93)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (235) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (237)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[10] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (236) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (238)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[10] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (237) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (239)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[10] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (238) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (240)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[10] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (239) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (241)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[10] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (240) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (242)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[10] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (241) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (243)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (242) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (244)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0, 2)), 956_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))), COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]) which results in the following constraint:

    (245)    (=(1, %(x0[12], 2))=TRUE956_0_length_Return(x0[12])=956_0_length_Return(x0[13])∧x2[12]=x2[13]x3[12]=x3[13]java.lang.Object(List(x1[12]))=java.lang.Object(List(x1[13])) ⇒ 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥))



    We simplified constraint (245) using rules (I), (II), (IV) which results in the following new constraint:

    (246)    (=(1, %(x0[12], 2))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥))



    We simplified constraint (246) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (247)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[12] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (247) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (248)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[12] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (248) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (249)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[12] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (249) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (250)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))), COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (251)    (=(1, %(x0[12], 2))=TRUE956_0_length_Return(x0[12])=956_0_length_Return(x0[13])∧x2[12]=x2[13]x3[12]=x3[13]java.lang.Object(List(x1[12]))=java.lang.Object(List(x1[13]))∧1716_0_length_ConstantStackPush(x1[13])=956_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13])))≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



    We simplified constraint (251) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (252)    (=(1, %(x0[12], 2))=TRUE906_0_length_NULL(0, x1[13])=956_0_length_Return(x0[0]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[13])))≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[13])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[12], x3[12], x1[13])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



    We simplified constraint (252) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (253)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x3[12] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (253) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (254)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x3[12] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (254) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (255)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x3[12] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (255) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (256)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧0 ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)







For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, x1) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0, 2), 1)), 956_0_length_Return(x0), x2, x3, x1) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (257)    (!(=(%(x0[14], 2), 1))=TRUE956_0_length_Return(x0[14])=956_0_length_Return(x0[6])∧x2[14]=x2[6]x3[14]=x3[6]x1[14]=x1[6]1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥))



    We simplified constraint (257) using rules (I), (II), (IV) which results in the following new constraint:

    (258)    (!(=(%(x0[14], 2), 1))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥))



    We simplified constraint (258) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (259)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] + [bni_118]x3[14] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (259) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (260)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] + [bni_118]x3[14] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (260) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (261)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] + [bni_118]x3[14] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (261) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (262)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧0 ≥ 0∧[bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, x1) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

  • 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x3, x4, x2) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4, 0), >=(x0, 0)), 956_0_length_Return(x0), x1, x3, x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

  • COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x1, x3, x4, x2) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

  • 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x2, x4, x3) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4, 0), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 956_0_length_Return(x0), x1, x2, x4, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)

  • COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x1, x2, x4, x3) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, x1) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 956_0_length_Return(x0), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)

  • COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x2, x3, x1) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2), x1, x3, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x3, x2) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)

  • 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4, x0), 956_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

  • COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1)))
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_108] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_109] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_108] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_109] ≥ 0)

  • 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4, x0), 956_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0, 2)), 956_0_length_Return(x0), x2, x3, java.lang.Object(List(x1)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧0 ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0), x2, x3, x1) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0, 2), 1)), 956_0_length_Return(x0), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧0 ≥ 0∧[bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(1716_0_length_ConstantStackPush(x1)) = 0   
POL(906_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(NULL) = 0   
POL(956_0_length_Return(x1)) = 0   
POL(java.lang.Object(x1)) = x1   
POL(List(x1)) = [1] + [2]x1   
POL(Cond_906_0_length_NULL(x1, x2, x3)) = 0   
POL(>=(x1, x2)) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1716_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x1   
POL(1737_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x3 + [-1]x1   
POL(COND_1737_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x4 + [-1]x2   
POL(&&(x1, x2)) = 0   
POL(1747_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x1   
POL(COND_1747_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x2 + [-1]x1   
POL(<=(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(1766_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x1   
POL(COND_1766_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x2   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(1788_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x1   
POL(1805_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x1   
POL(COND_1805_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x2   
POL(COND_1805_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x2   
POL(>(x1, x2)) = 0   
POL(COND_1766_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x2   
POL(!(x1)) = 0   

The following pairs are in P>:

COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))

The following pairs are in Pbound:

1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_1805_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])

The following pairs are in P:

1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])

At least the following rules have been oriented under context sensitive arithmetic replacement:

1716_0_length_ConstantStackPush(x0)1906_0_length_NULL(0, x0)1
906_0_length_NULL(x0, NULL)1956_0_length_Return(x0)1
906_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_906_0_length_NULL(>=(x1, 0), x1, java.lang.Object(List(x0)))1
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1906_0_length_NULL(+(x1, 1), x0)1
TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

(25) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
1716_0_length_ConstantStackPush(x0) → 906_0_length_NULL(0, x0)
906_0_length_NULL(x0, NULL) → 956_0_length_Return(x0)
906_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_906_0_length_NULL(x1 >= 0, x1, java.lang.Object(List(x0)))
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 906_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(0): 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(1): 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(x4[1] >= 0 && x0[1] >= 0, 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(2): COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(3): 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(4): COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(5): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(6): COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(7): 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(8): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_1805_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 956_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(10): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(x4[10] > x0[10], 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
(11): COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
(12): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(1 = x0[12] % 2, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
(13): COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
(14): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(x0[14] % 2 = 1), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])

(11) -> (0), if ((1716_0_length_ConstantStackPush(x1[11]) →* 956_0_length_Return(x0[0]))∧(x2[11]* x2[0])∧(x3[11]* x3[0])∧(x1[11]* x1[0]))


(13) -> (0), if ((1716_0_length_ConstantStackPush(x1[13]) →* 956_0_length_Return(x0[0]))∧(x2[13]* x2[0])∧(x3[13]* x3[0])∧(x1[13]* x1[0]))


(0) -> (1), if ((1716_0_length_ConstantStackPush(x2[0]) →* 956_0_length_Return(x0[1]))∧(x1[0]* x1[1])∧(x3[0]* x3[1])∧(x0[0]* x4[1])∧(x2[0]* x2[1]))


(1) -> (2), if ((x4[1] >= 0 && x0[1] >= 0* TRUE)∧(956_0_length_Return(x0[1]) →* 956_0_length_Return(x0[2]))∧(x1[1]* x1[2])∧(x3[1]* x3[2])∧(x4[1]* x4[2])∧(x2[1]* x2[2]))


(2) -> (3), if ((1716_0_length_ConstantStackPush(x3[2]) →* 956_0_length_Return(x0[3]))∧(x1[2]* x1[3])∧(x2[2]* x2[3])∧(x4[2] + x0[2]* x4[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5* TRUE)∧(956_0_length_Return(x0[3]) →* 956_0_length_Return(x0[4]))∧(x1[3]* x1[4])∧(x2[3]* x2[4])∧(x4[3]* x4[4])∧(x3[3]* x3[4]))


(4) -> (5), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[5]))∧(x2[4]* x2[5])∧(x3[4]* x3[5])∧(x1[4]* x1[5]))


(5) -> (6), if ((0 = x0[5] % 2* TRUE)∧(956_0_length_Return(x0[5]) →* 956_0_length_Return(x0[6]))∧(x2[5]* x2[6])∧(x3[5]* x3[6])∧(x1[5]* x1[6]))


(14) -> (6), if ((!(x0[14] % 2 = 1) →* TRUE)∧(956_0_length_Return(x0[14]) →* 956_0_length_Return(x0[6]))∧(x2[14]* x2[6])∧(x3[14]* x3[6])∧(x1[14]* x1[6]))


(6) -> (7), if ((1716_0_length_ConstantStackPush(x2[6]) →* 956_0_length_Return(x0[7]))∧(x1[6]* x1[7])∧(x3[6]* x3[7])∧(x2[6]* x2[7]))


(7) -> (8), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[8]))∧(x1[7]* x1[8])∧(x2[7]* x2[8])∧(x0[7]* x4[8])∧(x3[7]* java.lang.Object(List(x3[8]))))


(7) -> (10), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[10]))∧(x1[7]* x1[10])∧(x2[7]* java.lang.Object(List(x2[10])))∧(x0[7]* x4[10])∧(x3[7]* x3[10]))


(10) -> (11), if ((x4[10] > x0[10]* TRUE)∧(956_0_length_Return(x0[10]) →* 956_0_length_Return(x0[11]))∧(x1[10]* x1[11])∧(java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11])))∧(x4[10]* x4[11])∧(x3[10]* x3[11]))


(4) -> (12), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[12]))∧(x2[4]* x2[12])∧(x3[4]* x3[12])∧(x1[4]* java.lang.Object(List(x1[12]))))


(12) -> (13), if ((1 = x0[12] % 2* TRUE)∧(956_0_length_Return(x0[12]) →* 956_0_length_Return(x0[13]))∧(x2[12]* x2[13])∧(x3[12]* x3[13])∧(java.lang.Object(List(x1[12])) →* java.lang.Object(List(x1[13]))))


(4) -> (14), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[14]))∧(x2[4]* x2[14])∧(x3[4]* x3[14])∧(x1[4]* x1[14]))



The set Q consists of the following terms:
1716_0_length_ConstantStackPush(x0)
906_0_length_NULL(x0, NULL)
906_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_906_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(26) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(27) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
1716_0_length_ConstantStackPush(x0) → 906_0_length_NULL(0, x0)
906_0_length_NULL(x0, NULL) → 956_0_length_Return(x0)
906_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_906_0_length_NULL(x1 >= 0, x1, java.lang.Object(List(x0)))
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 906_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(14): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(x0[14] % 2 = 1), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
(13): COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
(12): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(1 = x0[12] % 2, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
(11): COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
(10): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(x4[10] > x0[10], 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
(7): 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(x4[1] >= 0 && x0[1] >= 0, 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(11) -> (0), if ((1716_0_length_ConstantStackPush(x1[11]) →* 956_0_length_Return(x0[0]))∧(x2[11]* x2[0])∧(x3[11]* x3[0])∧(x1[11]* x1[0]))


(13) -> (0), if ((1716_0_length_ConstantStackPush(x1[13]) →* 956_0_length_Return(x0[0]))∧(x2[13]* x2[0])∧(x3[13]* x3[0])∧(x1[13]* x1[0]))


(0) -> (1), if ((1716_0_length_ConstantStackPush(x2[0]) →* 956_0_length_Return(x0[1]))∧(x1[0]* x1[1])∧(x3[0]* x3[1])∧(x0[0]* x4[1])∧(x2[0]* x2[1]))


(1) -> (2), if ((x4[1] >= 0 && x0[1] >= 0* TRUE)∧(956_0_length_Return(x0[1]) →* 956_0_length_Return(x0[2]))∧(x1[1]* x1[2])∧(x3[1]* x3[2])∧(x4[1]* x4[2])∧(x2[1]* x2[2]))


(2) -> (3), if ((1716_0_length_ConstantStackPush(x3[2]) →* 956_0_length_Return(x0[3]))∧(x1[2]* x1[3])∧(x2[2]* x2[3])∧(x4[2] + x0[2]* x4[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5* TRUE)∧(956_0_length_Return(x0[3]) →* 956_0_length_Return(x0[4]))∧(x1[3]* x1[4])∧(x2[3]* x2[4])∧(x4[3]* x4[4])∧(x3[3]* x3[4]))


(4) -> (5), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[5]))∧(x2[4]* x2[5])∧(x3[4]* x3[5])∧(x1[4]* x1[5]))


(5) -> (6), if ((0 = x0[5] % 2* TRUE)∧(956_0_length_Return(x0[5]) →* 956_0_length_Return(x0[6]))∧(x2[5]* x2[6])∧(x3[5]* x3[6])∧(x1[5]* x1[6]))


(14) -> (6), if ((!(x0[14] % 2 = 1) →* TRUE)∧(956_0_length_Return(x0[14]) →* 956_0_length_Return(x0[6]))∧(x2[14]* x2[6])∧(x3[14]* x3[6])∧(x1[14]* x1[6]))


(6) -> (7), if ((1716_0_length_ConstantStackPush(x2[6]) →* 956_0_length_Return(x0[7]))∧(x1[6]* x1[7])∧(x3[6]* x3[7])∧(x2[6]* x2[7]))


(7) -> (10), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[10]))∧(x1[7]* x1[10])∧(x2[7]* java.lang.Object(List(x2[10])))∧(x0[7]* x4[10])∧(x3[7]* x3[10]))


(10) -> (11), if ((x4[10] > x0[10]* TRUE)∧(956_0_length_Return(x0[10]) →* 956_0_length_Return(x0[11]))∧(x1[10]* x1[11])∧(java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11])))∧(x4[10]* x4[11])∧(x3[10]* x3[11]))


(4) -> (12), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[12]))∧(x2[4]* x2[12])∧(x3[4]* x3[12])∧(x1[4]* java.lang.Object(List(x1[12]))))


(12) -> (13), if ((1 = x0[12] % 2* TRUE)∧(956_0_length_Return(x0[12]) →* 956_0_length_Return(x0[13]))∧(x2[12]* x2[13])∧(x3[12]* x3[13])∧(java.lang.Object(List(x1[12])) →* java.lang.Object(List(x1[13]))))


(4) -> (14), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[14]))∧(x2[4]* x2[14])∧(x3[4]* x3[14])∧(x1[4]* x1[14]))



The set Q consists of the following terms:
1716_0_length_ConstantStackPush(x0)
906_0_length_NULL(x0, NULL)
906_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_906_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(28) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (1)    (!(=(%(x0[14], 2), 1))=TRUE956_0_length_Return(x0[14])=956_0_length_Return(x0[6])∧x2[14]=x2[6]x3[14]=x3[6]x1[14]=x1[6]1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥))



    We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint:

    (2)    (!(=(%(x0[14], 2), 1))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(2)bni_83 + (-1)Bound*bni_83] + [bni_83]x1[14] + [bni_83]x3[14] ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(2)bni_83 + (-1)Bound*bni_83] + [bni_83]x1[14] + [bni_83]x3[14] ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(2)bni_83 + (-1)Bound*bni_83] + [bni_83]x1[14] + [bni_83]x3[14] ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[bni_83] ≥ 0∧[bni_83] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_83 + (-1)Bound*bni_83] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)







For Pair COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))), COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (7)    (=(1, %(x0[12], 2))=TRUE956_0_length_Return(x0[12])=956_0_length_Return(x0[13])∧x2[12]=x2[13]x3[12]=x3[13]java.lang.Object(List(x1[12]))=java.lang.Object(List(x1[13]))∧1716_0_length_ConstantStackPush(x1[13])=956_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13])))≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



    We simplified constraint (7) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (8)    (=(1, %(x0[12], 2))=TRUE906_0_length_NULL(0, x1[13])=956_0_length_Return(x0[0]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[13])))≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[13])))≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[12], x3[12], x1[13])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_85 + (-1)Bound*bni_85] + [(4)bni_85]x1[13] + [bni_85]x3[12] ≥ 0∧[1 + (-1)bso_86] + [3]x1[13] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_85 + (-1)Bound*bni_85] + [(4)bni_85]x1[13] + [bni_85]x3[12] ≥ 0∧[1 + (-1)bso_86] + [3]x1[13] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_85 + (-1)Bound*bni_85] + [(4)bni_85]x1[13] + [bni_85]x3[12] ≥ 0∧[1 + (-1)bso_86] + [3]x1[13] ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(4)bni_85] ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_86] ≥ 0∧[1] ≥ 0)







For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))), COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]) which results in the following constraint:

    (13)    (=(1, %(x0[12], 2))=TRUE956_0_length_Return(x0[12])=956_0_length_Return(x0[13])∧x2[12]=x2[13]x3[12]=x3[13]java.lang.Object(List(x1[12]))=java.lang.Object(List(x1[13])) ⇒ 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥))



    We simplified constraint (13) using rules (I), (II), (IV) which results in the following new constraint:

    (14)    (=(1, %(x0[12], 2))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))≥COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(6)bni_87 + (-1)Bound*bni_87] + [(4)bni_87]x1[12] + [bni_87]x3[12] ≥ 0∧[3 + (-1)bso_88] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(6)bni_87 + (-1)Bound*bni_87] + [(4)bni_87]x1[12] + [bni_87]x3[12] ≥ 0∧[3 + (-1)bso_88] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(6)bni_87 + (-1)Bound*bni_87] + [(4)bni_87]x1[12] + [bni_87]x3[12] ≥ 0∧[3 + (-1)bso_88] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(4)bni_87] ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(6)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_88] ≥ 0)







For Pair COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]), COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (19)    (>(x4[10], x0[10])=TRUE956_0_length_Return(x0[10])=956_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x4[10]=x4[11]x3[10]=x3[11]1716_0_length_ConstantStackPush(x1[11])=956_0_length_Return(x0[0])∧x2[11]=x2[0]x3[11]=x3[0]x1[11]=x1[0]COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (19) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (20)    (>(x4[10], x0[10])=TRUE0=x0906_0_length_NULL(x0, x1[11])=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[10], x3[10], x1[11])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (20) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x0, x1[11])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (21)    (956_0_length_Return(x1)=956_0_length_Return(x0[0])∧>(x4[10], x0[10])=TRUE0=x1COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x2[10], x3[10], NULL)∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))


    (22)    (Cond_906_0_length_NULL(>=(x3, 0), x3, java.lang.Object(List(x2)))=956_0_length_Return(x0[0])∧>(x4[10], x0[10])=TRUE0=x3COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2))), x2[10], x3[10], java.lang.Object(List(x2)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (21) using rules (I), (II), (IV) which results in the following new constraint:

    (23)    (>(x4[10], x0[10])=TRUECOND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x2[10], x3[10], NULL)∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (22) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (24)    (>(x4[10], x0[10])=TRUECond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x2)))=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2))), x2[10], x3[10], java.lang.Object(List(x2)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (23) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (25)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(4)bni_89 + (-1)Bound*bni_89] + [bni_89]x3[10] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (24) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (26)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(6)bni_89 + (-1)Bound*bni_89] + [bni_89]x3[10] + [(4)bni_89]x2 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (25) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(4)bni_89 + (-1)Bound*bni_89] + [bni_89]x3[10] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (26) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(6)bni_89 + (-1)Bound*bni_89] + [bni_89]x3[10] + [(4)bni_89]x2 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (27) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(4)bni_89 + (-1)Bound*bni_89] + [bni_89]x3[10] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(6)bni_89 + (-1)Bound*bni_89] + [bni_89]x3[10] + [(4)bni_89]x2 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (29) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (31)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (30) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_89] ≥ 0∧0 ≥ 0∧[(6)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)







For Pair 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]), COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]) which results in the following constraint:

    (33)    (>(x4[10], x0[10])=TRUE956_0_length_Return(x0[10])=956_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x4[10]=x4[11]x3[10]=x3[11]1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥))



    We simplified constraint (33) using rules (I), (II), (IV) which results in the following new constraint:

    (34)    (>(x4[10], x0[10])=TRUE1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥))



    We simplified constraint (34) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (35)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[(2)bni_91 + (-1)Bound*bni_91] + [bni_91]x3[10] + [bni_91]x1[10] ≥ 0∧[(-1)bso_92] ≥ 0)



    We simplified constraint (35) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (36)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[(2)bni_91 + (-1)Bound*bni_91] + [bni_91]x3[10] + [bni_91]x1[10] ≥ 0∧[(-1)bso_92] ≥ 0)



    We simplified constraint (36) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (37)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[(2)bni_91 + (-1)Bound*bni_91] + [bni_91]x3[10] + [bni_91]x1[10] ≥ 0∧[(-1)bso_92] ≥ 0)



    We simplified constraint (37) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (38)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(2)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)







For Pair 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) the following chains were created:
  • We consider the chain COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) which results in the following constraint:

    (39)    (1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]1716_0_length_ConstantStackPush(x3[7])=956_0_length_Return(x0[10])∧x1[7]=x1[10]x2[7]=java.lang.Object(List(x2[10]))∧x0[7]=x4[10]x3[7]=x3[10]1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (39) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (40)    (0=x6906_0_length_NULL(x6, x3[7])=956_0_length_Return(x0[10])∧1=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[6], java.lang.Object(List(x2[10])), x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (40) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x6, x3[7])=956_0_length_Return(x0[10]) which results in the following new constraints:

    (41)    (956_0_length_Return(x8)=956_0_length_Return(x0[10])∧0=x81=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[10])), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (42)    (Cond_906_0_length_NULL(>=(x10, 0), x10, java.lang.Object(List(x9)))=956_0_length_Return(x0[10])∧0=x101=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (41) using rules (I), (II), (IV) which results in the following new constraint:

    (43)    (1=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[10])), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (42) using rule (VII) which results in the following new constraint:

    (44)    (>=(x10, 0)=x16java.lang.Object(List(x9))=x17Cond_906_0_length_NULL(x16, x10, x17)=956_0_length_Return(x0[10])∧0=x101=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (43) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (45)    (956_0_length_Return(x11)=956_0_length_Return(x0[7])∧1=x111788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (46)    (Cond_906_0_length_NULL(>=(x13, 0), x13, java.lang.Object(List(x12)))=956_0_length_Return(x0[7])∧1=x131788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (45) using rules (I), (II), (III) which results in the following new constraint:

    (47)    (1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), 1, NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (46) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (48)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x12)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (49)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_94] ≥ 0)



    We simplified constraint (44) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (50)    (956_0_length_Return(x18)=956_0_length_Return(x0[7])∧>=(x10, 0)=x16java.lang.Object(List(x9))=x17Cond_906_0_length_NULL(x16, x10, x17)=956_0_length_Return(x0[10])∧0=x101=x181788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (51)    (Cond_906_0_length_NULL(>=(x20, 0), x20, java.lang.Object(List(x19)))=956_0_length_Return(x0[7])∧>=(x10, 0)=x16java.lang.Object(List(x9))=x17Cond_906_0_length_NULL(x16, x10, x17)=956_0_length_Return(x0[10])∧0=x101=x201788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (50) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (52)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=956_0_length_Return(x0[10]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (51) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (53)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=956_0_length_Return(x0[10])∧Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x19)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (48) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (54)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (52) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (55)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (53) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (56)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (49) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (57)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_94] ≥ 0)



    We simplified constraint (55) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (58)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (54) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (59)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (56) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (60)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (57) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (61)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_94] ≥ 0)



    We simplified constraint (58) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (62)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (59) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (63)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (60) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (64)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (61) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (65)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (62) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (66)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (63) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (67)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (64) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (68)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)







For Pair COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (69)    (=(0, %(x0[5], 2))=TRUE956_0_length_Return(x0[5])=956_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (69) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (70)    (=(0, %(x0[5], 2))=TRUE906_0_length_NULL(0, x2[6])=956_0_length_Return(x0[7]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (70) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (71)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_95 + (-1)Bound*bni_95] + [bni_95]x1[5] + [bni_95]x3[5] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (71) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (72)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_95 + (-1)Bound*bni_95] + [bni_95]x1[5] + [bni_95]x3[5] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (72) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (73)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_95 + (-1)Bound*bni_95] + [bni_95]x1[5] + [bni_95]x3[5] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (73) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (74)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)



  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (75)    (!(=(%(x0[14], 2), 1))=TRUE956_0_length_Return(x0[14])=956_0_length_Return(x0[6])∧x2[14]=x2[6]x3[14]=x3[6]x1[14]=x1[6]1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (75) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (76)    (!(=(%(x0[14], 2), 1))=TRUE906_0_length_NULL(0, x2[6])=956_0_length_Return(x0[7]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[14]), x2[6], x3[14], x1[14])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[14]), x2[6], x3[14], x1[14])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[14], x3[14], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (76) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (77)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_95 + (-1)Bound*bni_95] + [bni_95]x1[14] + [bni_95]x3[14] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (77) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (78)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_95 + (-1)Bound*bni_95] + [bni_95]x1[14] + [bni_95]x3[14] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (78) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (79)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_95 + (-1)Bound*bni_95] + [bni_95]x1[14] + [bni_95]x3[14] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (79) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (80)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)







For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (81)    (=(0, %(x0[5], 2))=TRUE956_0_length_Return(x0[5])=956_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (81) using rules (I), (II), (IV) which results in the following new constraint:

    (82)    (=(0, %(x0[5], 2))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(2)bni_97 + (-1)Bound*bni_97] + [bni_97]x1[5] + [bni_97]x3[5] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(2)bni_97 + (-1)Bound*bni_97] + [bni_97]x1[5] + [bni_97]x3[5] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(2)bni_97 + (-1)Bound*bni_97] + [bni_97]x1[5] + [bni_97]x3[5] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_97] ≥ 0∧[bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_97 + (-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)







For Pair COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) the following chains were created:
  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

    (87)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (87) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (88)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(0, x1[4])=956_0_length_Return(x0[5]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (88) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (89)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (89) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (90)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (90) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (91)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (91) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (92)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)



  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) which results in the following constraint:

    (93)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[12])∧x2[4]=x2[12]x3[4]=x3[12]x1[4]=java.lang.Object(List(x1[12])) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (93) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (94)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(1, x1[12])=956_0_length_Return(x0[12]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), java.lang.Object(List(x1[12])), x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), java.lang.Object(List(x1[12])), x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x1[12]))), x2[3], x3[3], java.lang.Object(List(x1[12])))∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (94) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(6)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [(4)bni_99]x1[12] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (95) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (96)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(6)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [(4)bni_99]x1[12] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (96) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (97)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(6)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [(4)bni_99]x1[12] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (97) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (98)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_99] ≥ 0∧0 ≥ 0∧[(6)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)



  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) which results in the following constraint:

    (99)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[14])∧x2[4]=x2[14]x3[4]=x3[14]x1[4]=x1[14]COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (99) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (100)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(0, x1[4])=956_0_length_Return(x0[14]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (100) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (101) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (102) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (103)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [bni_99]x3[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (103) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (104)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)







For Pair 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) the following chains were created:
  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (105)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (105) using rules (I), (II), (IV) which results in the following new constraint:

    (106)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (106) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(2)bni_101 + (-1)Bound*bni_101] + [bni_101]x3[3] + [bni_101]x4[3] + [bni_101]x1[3] ≥ 0∧[(-1)bso_102] + x4[3] ≥ 0)



    We simplified constraint (107) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(2)bni_101 + (-1)Bound*bni_101] + [bni_101]x3[3] + [bni_101]x4[3] + [bni_101]x1[3] ≥ 0∧[(-1)bso_102] + x4[3] ≥ 0)



    We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (109)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(2)bni_101 + (-1)Bound*bni_101] + [bni_101]x3[3] + [bni_101]x4[3] + [bni_101]x1[3] ≥ 0∧[(-1)bso_102] + x4[3] ≥ 0)



    We simplified constraint (109) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (110)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_101] ≥ 0∧[bni_101] ≥ 0∧0 ≥ 0∧[bni_101] ≥ 0∧0 ≥ 0∧[(2)bni_101 + (-1)Bound*bni_101] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)







For Pair COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) the following chains were created:
  • We consider the chain 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (111)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE956_0_length_Return(x0[1])=956_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]1716_0_length_ConstantStackPush(x3[2])=956_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (111) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (112)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE906_0_length_NULL(0, x3[2])=956_0_length_Return(x0[3]) ⇒ COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (112) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (113)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(2)bni_103 + (-1)Bound*bni_103] + [bni_103]x3[2] + [bni_103]x1[1] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (113) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (114)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(2)bni_103 + (-1)Bound*bni_103] + [bni_103]x3[2] + [bni_103]x1[1] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (114) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (115)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(2)bni_103 + (-1)Bound*bni_103] + [bni_103]x3[2] + [bni_103]x1[1] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (115) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (116)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_103] ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧[(2)bni_103 + (-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)







For Pair 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) the following chains were created:
  • We consider the chain 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (117)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE956_0_length_Return(x0[1])=956_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (117) using rules (I), (II), (IV) which results in the following new constraint:

    (118)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (118) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (119)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(2)bni_105 + (-1)Bound*bni_105] + [bni_105]x3[1] + [bni_105]x1[1] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (119) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (120)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(2)bni_105 + (-1)Bound*bni_105] + [bni_105]x3[1] + [bni_105]x1[1] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (120) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (121)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(2)bni_105 + (-1)Bound*bni_105] + [bni_105]x3[1] + [bni_105]x1[1] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (121) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (122)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_105] ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧[(2)bni_105 + (-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)







For Pair 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
  • We consider the chain COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (123)    (1716_0_length_ConstantStackPush(x1[11])=956_0_length_Return(x0[0])∧x2[11]=x2[0]x3[11]=x3[0]x1[11]=x1[0]1716_0_length_ConstantStackPush(x2[0])=956_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (123) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (124)    (0=x23906_0_length_NULL(x23, x1[11])=956_0_length_Return(x0[0])∧0=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], x1[11])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], x1[11])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[11], x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (124) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x23, x1[11])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (125)    (956_0_length_Return(x25)=956_0_length_Return(x0[0])∧0=x250=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (126)    (Cond_906_0_length_NULL(>=(x27, 0), x27, java.lang.Object(List(x26)))=956_0_length_Return(x0[0])∧0=x270=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x26)), x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (125) using rules (I), (II), (III) which results in the following new constraint:

    (127)    (0=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[11], 0, x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (126) using rule (VII) which results in the following new constraint:

    (128)    (>=(x27, 0)=x33java.lang.Object(List(x26))=x34Cond_906_0_length_NULL(x33, x27, x34)=956_0_length_Return(x0[0])∧0=x270=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x26)), x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (127) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (129)    (956_0_length_Return(x28)=956_0_length_Return(x0[1])∧0=x281716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[11], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (130)    (Cond_906_0_length_NULL(>=(x30, 0), x30, java.lang.Object(List(x29)))=956_0_length_Return(x0[1])∧0=x301716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x29))), NULL, x3[11], 0, java.lang.Object(List(x29)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (129) using rules (I), (II), (IV) which results in the following new constraint:

    (131)    (1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[11], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (130) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (132)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x29)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x29))), NULL, x3[11], 0, java.lang.Object(List(x29)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (131) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (133)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_108] ≥ 0)



    We simplified constraint (128) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (134)    (956_0_length_Return(x35)=956_0_length_Return(x0[1])∧>=(x27, 0)=x33java.lang.Object(List(x26))=x34Cond_906_0_length_NULL(x33, x27, x34)=956_0_length_Return(x0[0])∧0=x270=x351716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x26)), x3[11], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (135)    (Cond_906_0_length_NULL(>=(x37, 0), x37, java.lang.Object(List(x36)))=956_0_length_Return(x0[1])∧>=(x27, 0)=x33java.lang.Object(List(x26))=x34Cond_906_0_length_NULL(x33, x27, x34)=956_0_length_Return(x0[0])∧0=x270=x371716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x36))), java.lang.Object(List(x26)), x3[11], x0[0], java.lang.Object(List(x36)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (134) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (136)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x26)))=956_0_length_Return(x0[0]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x26)), x3[11], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (135) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (137)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x26)))=956_0_length_Return(x0[0])∧Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x36)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x36))), java.lang.Object(List(x26)), x3[11], x0[0], java.lang.Object(List(x36)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (132) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (138)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (136) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (139)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (137) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (140)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (133) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (141)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_108] ≥ 0)



    We simplified constraint (139) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (142)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (138) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (143)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (140) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (144)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (141) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (145)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_108] ≥ 0)



    We simplified constraint (142) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (146)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (143) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (147)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (144) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (148)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (145) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (149)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (146) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (150)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (147) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (151)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (148) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (152)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



  • We consider the chain COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (153)    (1716_0_length_ConstantStackPush(x1[13])=956_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]1716_0_length_ConstantStackPush(x2[0])=956_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (153) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (154)    (0=x40906_0_length_NULL(x40, x1[13])=956_0_length_Return(x0[0])∧0=x41906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[13], x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (154) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x40, x1[13])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (155)    (956_0_length_Return(x42)=956_0_length_Return(x0[0])∧0=x420=x41906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (156)    (Cond_906_0_length_NULL(>=(x44, 0), x44, java.lang.Object(List(x43)))=956_0_length_Return(x0[0])∧0=x440=x41906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x43)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x43)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x43)), x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (155) using rules (I), (II), (III) which results in the following new constraint:

    (157)    (0=x41906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[13], 0, x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (156) using rule (VII) which results in the following new constraint:

    (158)    (>=(x44, 0)=x50java.lang.Object(List(x43))=x51Cond_906_0_length_NULL(x50, x44, x51)=956_0_length_Return(x0[0])∧0=x440=x41906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x43)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x43)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x43)), x3[13], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (157) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (159)    (956_0_length_Return(x45)=956_0_length_Return(x0[1])∧0=x451716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (160)    (Cond_906_0_length_NULL(>=(x47, 0), x47, java.lang.Object(List(x46)))=956_0_length_Return(x0[1])∧0=x471716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x46)), x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x46)), x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x46))), NULL, x3[13], 0, java.lang.Object(List(x46)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (159) using rules (I), (II), (IV) which results in the following new constraint:

    (161)    (1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (160) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (162)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x46)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x46)), x3[13], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x46)), x3[13], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x46))), NULL, x3[13], 0, java.lang.Object(List(x46)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (161) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (163)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_108] ≥ 0)



    We simplified constraint (158) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x41, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (164)    (956_0_length_Return(x52)=956_0_length_Return(x0[1])∧>=(x44, 0)=x50java.lang.Object(List(x43))=x51Cond_906_0_length_NULL(x50, x44, x51)=956_0_length_Return(x0[0])∧0=x440=x521716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x43)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x43)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x43)), x3[13], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (165)    (Cond_906_0_length_NULL(>=(x54, 0), x54, java.lang.Object(List(x53)))=956_0_length_Return(x0[1])∧>=(x44, 0)=x50java.lang.Object(List(x43))=x51Cond_906_0_length_NULL(x50, x44, x51)=956_0_length_Return(x0[0])∧0=x440=x541716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[13], java.lang.Object(List(x43)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[13], java.lang.Object(List(x43)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x53))), java.lang.Object(List(x43)), x3[13], x0[0], java.lang.Object(List(x53)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (164) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (166)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x43)))=956_0_length_Return(x0[0]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x43)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x43)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x43)), x3[13], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (165) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (167)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x43)))=956_0_length_Return(x0[0])∧Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x53)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[13], java.lang.Object(List(x43)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[13], java.lang.Object(List(x43)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x53))), java.lang.Object(List(x43)), x3[13], x0[0], java.lang.Object(List(x53)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (162) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (168)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (166) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (169)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (167) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (170)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (163) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (171)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_108] ≥ 0)



    We simplified constraint (169) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (172)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (168) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (173)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (170) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (174)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (171) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (175)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[(-1)bso_108] ≥ 0)



    We simplified constraint (172) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (176)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (173) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (177)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (174) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (178)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (175) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (179)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (176) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (180)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (177) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (181)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (178) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (182)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[bni_83] ≥ 0∧[bni_83] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_83 + (-1)Bound*bni_83] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)

  • COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(4)bni_85] ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_86] ≥ 0∧[1] ≥ 0)

  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))), ≥)∧[(4)bni_87] ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(6)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_88] ≥ 0)

  • COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_89] ≥ 0∧0 ≥ 0∧[(6)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)

  • 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(2)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)

  • 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)

  • COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
    • (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_97] ≥ 0∧[bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_97 + (-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)

  • COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_99] ≥ 0∧0 ≥ 0∧[(6)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)

  • 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_101] ≥ 0∧[bni_101] ≥ 0∧0 ≥ 0∧[bni_101] ≥ 0∧0 ≥ 0∧[(2)bni_101 + (-1)Bound*bni_101] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

  • COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_103] ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧[(2)bni_103 + (-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)

  • 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_105] ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧[(2)bni_105 + (-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)

  • 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(1716_0_length_ConstantStackPush(x1)) = 0   
POL(906_0_length_NULL(x1, x2)) = [2]x2   
POL(0) = 0   
POL(NULL) = [2]   
POL(956_0_length_Return(x1)) = x1   
POL(java.lang.Object(x1)) = [2]x1   
POL(List(x1)) = [2] + [2]x1   
POL(Cond_906_0_length_NULL(x1, x2, x3)) = [2]x3 + [3]x2   
POL(>=(x1, x2)) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1766_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [2] + x4 + x3   
POL(COND_1766_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2] + x5 + x4   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(COND_1766_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x5 + x4   
POL(1716_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [2] + x4 + x3   
POL(COND_1805_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [2] + x6 + x3   
POL(1805_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2] + x5 + x2   
POL(>(x1, x2)) = 0   
POL(1788_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [2] + x3 + x2   
POL(COND_1747_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [2] + x6 + x3   
POL(1747_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2] + x5 + x4 + x2   
POL(&&(x1, x2)) = 0   
POL(<=(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(COND_1737_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [2] + x4 + x3   
POL(1737_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2] + x3 + x2   

The following pairs are in P>:

COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))

The following pairs are in Pbound:

1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
COND_1766_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[13]), x2[13], x3[13], java.lang.Object(List(x1[13]))) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12]))) → COND_1766_1_MAIN_INVOKEMETHOD1(=(1, %(x0[12], 2)), 956_0_length_Return(x0[12]), x2[12], x3[12], java.lang.Object(List(x1[12])))
COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])

The following pairs are in P:

1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

906_0_length_NULL(0, x0)11716_0_length_ConstantStackPush(x0)1
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1906_0_length_NULL(+(x1, 1), x0)1

(29) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
1716_0_length_ConstantStackPush(x0) → 906_0_length_NULL(0, x0)
906_0_length_NULL(x0, NULL) → 956_0_length_Return(x0)
906_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_906_0_length_NULL(x1 >= 0, x1, java.lang.Object(List(x0)))
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 906_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(14): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(x0[14] % 2 = 1), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
(11): COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
(10): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(x4[10] > x0[10], 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
(7): 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(x4[1] >= 0 && x0[1] >= 0, 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(11) -> (0), if ((1716_0_length_ConstantStackPush(x1[11]) →* 956_0_length_Return(x0[0]))∧(x2[11]* x2[0])∧(x3[11]* x3[0])∧(x1[11]* x1[0]))


(0) -> (1), if ((1716_0_length_ConstantStackPush(x2[0]) →* 956_0_length_Return(x0[1]))∧(x1[0]* x1[1])∧(x3[0]* x3[1])∧(x0[0]* x4[1])∧(x2[0]* x2[1]))


(1) -> (2), if ((x4[1] >= 0 && x0[1] >= 0* TRUE)∧(956_0_length_Return(x0[1]) →* 956_0_length_Return(x0[2]))∧(x1[1]* x1[2])∧(x3[1]* x3[2])∧(x4[1]* x4[2])∧(x2[1]* x2[2]))


(2) -> (3), if ((1716_0_length_ConstantStackPush(x3[2]) →* 956_0_length_Return(x0[3]))∧(x1[2]* x1[3])∧(x2[2]* x2[3])∧(x4[2] + x0[2]* x4[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5* TRUE)∧(956_0_length_Return(x0[3]) →* 956_0_length_Return(x0[4]))∧(x1[3]* x1[4])∧(x2[3]* x2[4])∧(x4[3]* x4[4])∧(x3[3]* x3[4]))


(4) -> (5), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[5]))∧(x2[4]* x2[5])∧(x3[4]* x3[5])∧(x1[4]* x1[5]))


(5) -> (6), if ((0 = x0[5] % 2* TRUE)∧(956_0_length_Return(x0[5]) →* 956_0_length_Return(x0[6]))∧(x2[5]* x2[6])∧(x3[5]* x3[6])∧(x1[5]* x1[6]))


(14) -> (6), if ((!(x0[14] % 2 = 1) →* TRUE)∧(956_0_length_Return(x0[14]) →* 956_0_length_Return(x0[6]))∧(x2[14]* x2[6])∧(x3[14]* x3[6])∧(x1[14]* x1[6]))


(6) -> (7), if ((1716_0_length_ConstantStackPush(x2[6]) →* 956_0_length_Return(x0[7]))∧(x1[6]* x1[7])∧(x3[6]* x3[7])∧(x2[6]* x2[7]))


(7) -> (10), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[10]))∧(x1[7]* x1[10])∧(x2[7]* java.lang.Object(List(x2[10])))∧(x0[7]* x4[10])∧(x3[7]* x3[10]))


(10) -> (11), if ((x4[10] > x0[10]* TRUE)∧(956_0_length_Return(x0[10]) →* 956_0_length_Return(x0[11]))∧(x1[10]* x1[11])∧(java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11])))∧(x4[10]* x4[11])∧(x3[10]* x3[11]))


(4) -> (14), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[14]))∧(x2[4]* x2[14])∧(x3[4]* x3[14])∧(x1[4]* x1[14]))



The set Q consists of the following terms:
1716_0_length_ConstantStackPush(x0)
906_0_length_NULL(x0, NULL)
906_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_906_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(30) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (1)    (!(=(%(x0[14], 2), 1))=TRUE956_0_length_Return(x0[14])=956_0_length_Return(x0[6])∧x2[14]=x2[6]x3[14]=x3[6]x1[14]=x1[6]1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥))



    We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint:

    (2)    (!(=(%(x0[14], 2), 1))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])≥COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[14] + [bni_77]x2[14] ≥ 0∧[(-1)bso_78] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[14] + [bni_77]x2[14] ≥ 0∧[(-1)bso_78] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[14] + [bni_77]x2[14] ≥ 0∧[(-1)bso_78] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[bni_77] ≥ 0∧0 ≥ 0∧[bni_77] ≥ 0∧0 ≥ 0∧[(-1)bni_77 + (-1)Bound*bni_77] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_78] ≥ 0)







For Pair COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]), COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (7)    (>(x4[10], x0[10])=TRUE956_0_length_Return(x0[10])=956_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x4[10]=x4[11]x3[10]=x3[11]1716_0_length_ConstantStackPush(x1[11])=956_0_length_Return(x0[0])∧x2[11]=x2[0]x3[11]=x3[0]x1[11]=x1[0]COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (7) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (8)    (>(x4[10], x0[10])=TRUE0=x0906_0_length_NULL(x0, x1[11])=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[10], x3[10], x1[11])∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x0, x1[11])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (9)    (956_0_length_Return(x1)=956_0_length_Return(x0[0])∧>(x4[10], x0[10])=TRUE0=x1COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x2[10], x3[10], NULL)∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))


    (10)    (Cond_906_0_length_NULL(>=(x3, 0), x3, java.lang.Object(List(x2)))=956_0_length_Return(x0[0])∧>(x4[10], x0[10])=TRUE0=x3COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2))), x2[10], x3[10], java.lang.Object(List(x2)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint:

    (11)    (>(x4[10], x0[10])=TRUECOND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x2[10], x3[10], NULL)∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (10) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (12)    (>(x4[10], x0[10])=TRUECond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x2)))=956_0_length_Return(x0[0]) ⇒ COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x4[10], x3[10])≥1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x2))), x2[10], x3[10], java.lang.Object(List(x2)))∧(UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥))



    We simplified constraint (11) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (13)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_79 + (-1)Bound*bni_79] + [(4)bni_79]x2[10] ≥ 0∧[(-1)bso_80] + [3]x2[10] ≥ 0)



    We simplified constraint (12) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (14)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(3)bni_79 + (-1)Bound*bni_79] + [(4)bni_79]x2[10] + [(4)bni_79]x2 ≥ 0∧[(-1)bso_80] + [3]x2[10] ≥ 0)



    We simplified constraint (13) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_79 + (-1)Bound*bni_79] + [(4)bni_79]x2[10] ≥ 0∧[(-1)bso_80] + [3]x2[10] ≥ 0)



    We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(3)bni_79 + (-1)Bound*bni_79] + [(4)bni_79]x2[10] + [(4)bni_79]x2 ≥ 0∧[(-1)bso_80] + [3]x2[10] ≥ 0)



    We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[bni_79 + (-1)Bound*bni_79] + [(4)bni_79]x2[10] ≥ 0∧[(-1)bso_80] + [3]x2[10] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧[(3)bni_79 + (-1)Bound*bni_79] + [(4)bni_79]x2[10] + [(4)bni_79]x2 ≥ 0∧[(-1)bso_80] + [3]x2[10] ≥ 0)



    We simplified constraint (17) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (19)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_79] ≥ 0∧0 ≥ 0∧[bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0∧[1] ≥ 0)



    We simplified constraint (18) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (20)    (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_79] ≥ 0∧[(4)bni_79] ≥ 0∧0 ≥ 0∧[(3)bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0∧[1] ≥ 0)







For Pair 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) the following chains were created:
  • We consider the chain 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]), COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]) which results in the following constraint:

    (21)    (>(x4[10], x0[10])=TRUE956_0_length_Return(x0[10])=956_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x4[10]=x4[11]x3[10]=x3[11]1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥))



    We simplified constraint (21) using rules (I), (II), (IV) which results in the following new constraint:

    (22)    (>(x4[10], x0[10])=TRUE1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥NonInfC∧1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])≥COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])∧(UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥))



    We simplified constraint (22) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_81 + (-1)Bound*bni_81] + [(4)bni_81]x2[10] + [bni_81]x1[10] ≥ 0∧[(-1)bso_82] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_81 + (-1)Bound*bni_81] + [(4)bni_81]x2[10] + [bni_81]x1[10] ≥ 0∧[(-1)bso_82] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧[bni_81 + (-1)Bound*bni_81] + [(4)bni_81]x2[10] + [bni_81]x1[10] ≥ 0∧[(-1)bso_82] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_81] ≥ 0∧[bni_81] ≥ 0∧0 ≥ 0∧[bni_81 + (-1)Bound*bni_81] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_82] ≥ 0)







For Pair 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) the following chains were created:
  • We consider the chain COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) which results in the following constraint:

    (27)    (1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]1716_0_length_ConstantStackPush(x3[7])=956_0_length_Return(x0[10])∧x1[7]=x1[10]x2[7]=java.lang.Object(List(x2[10]))∧x0[7]=x4[10]x3[7]=x3[10]1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (27) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (28)    (0=x6906_0_length_NULL(x6, x3[7])=956_0_length_Return(x0[10])∧1=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[6], java.lang.Object(List(x2[10])), x0[7], x3[7])∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (28) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x6, x3[7])=956_0_length_Return(x0[10]) which results in the following new constraints:

    (29)    (956_0_length_Return(x8)=956_0_length_Return(x0[10])∧0=x81=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[10])), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (30)    (Cond_906_0_length_NULL(>=(x10, 0), x10, java.lang.Object(List(x9)))=956_0_length_Return(x0[10])∧0=x101=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (29) using rules (I), (II), (IV) which results in the following new constraint:

    (31)    (1=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[10])), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (30) using rule (VII) which results in the following new constraint:

    (32)    (>=(x10, 0)=x16java.lang.Object(List(x9))=x17Cond_906_0_length_NULL(x16, x10, x17)=956_0_length_Return(x0[10])∧0=x101=x7906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(x2[10])))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (31) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (33)    (956_0_length_Return(x11)=956_0_length_Return(x0[7])∧1=x111788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (34)    (Cond_906_0_length_NULL(>=(x13, 0), x13, java.lang.Object(List(x12)))=956_0_length_Return(x0[7])∧1=x131788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (33) using rules (I), (II), (III) which results in the following new constraint:

    (35)    (1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), 1, NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (34) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (36)    (Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x12)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x12)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), x0[7], NULL)∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (35) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (37)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_84] ≥ 0)



    We simplified constraint (32) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x7, x2[10])=956_0_length_Return(x0[7]) which results in the following new constraints:

    (38)    (956_0_length_Return(x18)=956_0_length_Return(x0[7])∧>=(x10, 0)=x16java.lang.Object(List(x9))=x17Cond_906_0_length_NULL(x16, x10, x17)=956_0_length_Return(x0[10])∧0=x101=x181788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (39)    (Cond_906_0_length_NULL(>=(x20, 0), x20, java.lang.Object(List(x19)))=956_0_length_Return(x0[7])∧>=(x10, 0)=x16java.lang.Object(List(x9))=x17Cond_906_0_length_NULL(x16, x10, x17)=956_0_length_Return(x0[10])∧0=x101=x201788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (38) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (40)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=956_0_length_Return(x0[10]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(1), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(NULL)))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (39) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (41)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=956_0_length_Return(x0[10])∧Cond_906_0_length_NULL(TRUE, 1, java.lang.Object(List(x19)))=956_0_length_Return(x0[7]) ⇒ 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥NonInfC∧1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x9)), java.lang.Object(List(java.lang.Object(List(x19)))))≥1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x9))), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), x0[7], java.lang.Object(List(x9)))∧(UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (36) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (42)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (43)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (41) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (44)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (37) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (45)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_84] ≥ 0)



    We simplified constraint (43) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (46)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (42) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (47)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (44) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (48)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (45) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (49)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[(-1)bso_84] ≥ 0)



    We simplified constraint (46) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (50)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (47) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (51)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (48) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (52)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (49) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (53)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (50) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (54)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (51) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (55)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (52) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (56)    ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)







For Pair COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (57)    (=(0, %(x0[5], 2))=TRUE956_0_length_Return(x0[5])=956_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (57) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (58)    (=(0, %(x0[5], 2))=TRUE906_0_length_NULL(0, x2[6])=956_0_length_Return(x0[7]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (58) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (59)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_85 + (-1)Bound*bni_85] + [bni_85]x1[5] + [bni_85]x2[6] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (59) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (60)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_85 + (-1)Bound*bni_85] + [bni_85]x1[5] + [bni_85]x2[6] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (60) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (61)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_85 + (-1)Bound*bni_85] + [bni_85]x1[5] + [bni_85]x2[6] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (61) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (62)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85] ≥ 0∧0 ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[(-1)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)



  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (63)    (!(=(%(x0[14], 2), 1))=TRUE956_0_length_Return(x0[14])=956_0_length_Return(x0[6])∧x2[14]=x2[6]x3[14]=x3[6]x1[14]=x1[6]1716_0_length_ConstantStackPush(x2[6])=956_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (63) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (64)    (!(=(%(x0[14], 2), 1))=TRUE906_0_length_NULL(0, x2[6])=956_0_length_Return(x0[7]) ⇒ COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[14]), x2[6], x3[14], x1[14])≥NonInfC∧COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[14]), x2[6], x3[14], x1[14])≥1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[14], x3[14], x2[6])∧(UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (64) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (65)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_85 + (-1)Bound*bni_85] + [bni_85]x1[14] + [bni_85]x2[6] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (66)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_85 + (-1)Bound*bni_85] + [bni_85]x1[14] + [bni_85]x2[6] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (66) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (67)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_85 + (-1)Bound*bni_85] + [bni_85]x1[14] + [bni_85]x2[6] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (67) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (68)    (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85] ≥ 0∧0 ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[(-1)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)







For Pair 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) the following chains were created:
  • We consider the chain 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (69)    (=(0, %(x0[5], 2))=TRUE956_0_length_Return(x0[5])=956_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (69) using rules (I), (II), (IV) which results in the following new constraint:

    (70)    (=(0, %(x0[5], 2))=TRUE1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (70) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (71)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [bni_87]x1[5] + [bni_87]x2[5] ≥ 0∧[(-1)bso_88] ≥ 0)



    We simplified constraint (71) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (72)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [bni_87]x1[5] + [bni_87]x2[5] ≥ 0∧[(-1)bso_88] ≥ 0)



    We simplified constraint (72) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (73)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [bni_87]x1[5] + [bni_87]x2[5] ≥ 0∧[(-1)bso_88] ≥ 0)



    We simplified constraint (73) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (74)    (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_87] ≥ 0∧0 ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[(-1)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_88] ≥ 0)







For Pair COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) the following chains were created:
  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

    (75)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (75) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (76)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(0, x1[4])=956_0_length_Return(x0[5]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (76) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (77)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_89 + (-1)Bound*bni_89] + [bni_89]x2[3] + [bni_89]x1[4] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (77) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (78)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_89 + (-1)Bound*bni_89] + [bni_89]x2[3] + [bni_89]x1[4] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (78) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (79)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_89 + (-1)Bound*bni_89] + [bni_89]x2[3] + [bni_89]x1[4] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (79) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (80)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(-1)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)



  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) which results in the following constraint:

    (81)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1716_0_length_ConstantStackPush(x1[4])=956_0_length_Return(x0[14])∧x2[4]=x2[14]x3[4]=x3[14]x1[4]=x1[14]COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (81) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (82)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE906_0_length_NULL(0, x1[4])=956_0_length_Return(x0[14]) ⇒ COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_89 + (-1)Bound*bni_89] + [bni_89]x2[3] + [bni_89]x1[4] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_89 + (-1)Bound*bni_89] + [bni_89]x2[3] + [bni_89]x1[4] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_89 + (-1)Bound*bni_89] + [bni_89]x2[3] + [bni_89]x1[4] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(-1)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)







For Pair 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) the following chains were created:
  • We consider the chain 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (87)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE956_0_length_Return(x0[3])=956_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (87) using rules (I), (II), (IV) which results in the following new constraint:

    (88)    (&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (88) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (89)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_91 + (-1)Bound*bni_91] + [bni_91]x4[3] + [bni_91]x2[3] + [bni_91]x1[3] ≥ 0∧[(-1)bso_92] + x4[3] ≥ 0)



    We simplified constraint (89) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (90)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_91 + (-1)Bound*bni_91] + [bni_91]x4[3] + [bni_91]x2[3] + [bni_91]x1[3] ≥ 0∧[(-1)bso_92] + x4[3] ≥ 0)



    We simplified constraint (90) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (91)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_91 + (-1)Bound*bni_91] + [bni_91]x4[3] + [bni_91]x2[3] + [bni_91]x1[3] ≥ 0∧[(-1)bso_92] + x4[3] ≥ 0)



    We simplified constraint (91) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (92)    (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧0 ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(-1)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)







For Pair COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) the following chains were created:
  • We consider the chain 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (93)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE956_0_length_Return(x0[1])=956_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]1716_0_length_ConstantStackPush(x3[2])=956_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (93) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (94)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE906_0_length_NULL(0, x3[2])=956_0_length_Return(x0[3]) ⇒ COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (94) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_93] + [bni_93]x2[1] + [bni_93]x1[1] ≥ 0∧[1 + (-1)bso_94] ≥ 0)



    We simplified constraint (95) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (96)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_93] + [bni_93]x2[1] + [bni_93]x1[1] ≥ 0∧[1 + (-1)bso_94] ≥ 0)



    We simplified constraint (96) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (97)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_93] + [bni_93]x2[1] + [bni_93]x1[1] ≥ 0∧[1 + (-1)bso_94] ≥ 0)



    We simplified constraint (97) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (98)    (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_93] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_94] ≥ 0)







For Pair 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) the following chains were created:
  • We consider the chain 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (99)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE956_0_length_Return(x0[1])=956_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (99) using rules (I), (II), (IV) which results in the following new constraint:

    (100)    (&&(>=(x4[1], 0), >=(x0[1], 0))=TRUE1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (100) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_95] + [bni_95]x2[1] + [bni_95]x1[1] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (101) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_95] + [bni_95]x2[1] + [bni_95]x1[1] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (102) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (103)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_95] + [bni_95]x2[1] + [bni_95]x1[1] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (103) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (104)    (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)







For Pair 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
  • We consider the chain COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11]), 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (105)    (1716_0_length_ConstantStackPush(x1[11])=956_0_length_Return(x0[0])∧x2[11]=x2[0]x3[11]=x3[0]x1[11]=x1[0]1716_0_length_ConstantStackPush(x2[0])=956_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (105) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (106)    (0=x23906_0_length_NULL(x23, x1[11])=956_0_length_Return(x0[0])∧0=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], x1[11])≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], x1[11])≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[11], x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (106) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x23, x1[11])=956_0_length_Return(x0[0]) which results in the following new constraints:

    (107)    (956_0_length_Return(x25)=956_0_length_Return(x0[0])∧0=x250=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (108)    (Cond_906_0_length_NULL(>=(x27, 0), x27, java.lang.Object(List(x26)))=956_0_length_Return(x0[0])∧0=x270=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x26)), x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (107) using rules (I), (II), (III) which results in the following new constraint:

    (109)    (0=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), x2[0], x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), NULL, x3[11], 0, x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (108) using rule (VII) which results in the following new constraint:

    (110)    (>=(x27, 0)=x33java.lang.Object(List(x26))=x34Cond_906_0_length_NULL(x33, x27, x34)=956_0_length_Return(x0[0])∧0=x270=x24906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x26)), x3[11], x0[0], x2[0])∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (109) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (111)    (956_0_length_Return(x28)=956_0_length_Return(x0[1])∧0=x281716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[11], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (112)    (Cond_906_0_length_NULL(>=(x30, 0), x30, java.lang.Object(List(x29)))=956_0_length_Return(x0[1])∧0=x301716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x29))), NULL, x3[11], 0, java.lang.Object(List(x29)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (111) using rules (I), (II), (IV) which results in the following new constraint:

    (113)    (1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), NULL, x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), NULL, x3[11], 0, NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (112) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (114)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x29)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(0), java.lang.Object(List(x29)), x3[11], NULL)≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x29))), NULL, x3[11], 0, java.lang.Object(List(x29)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (113) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (115)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (110) using rule (V) (with possible (I) afterwards) using induction on 906_0_length_NULL(x24, x2[0])=956_0_length_Return(x0[1]) which results in the following new constraints:

    (116)    (956_0_length_Return(x35)=956_0_length_Return(x0[1])∧>=(x27, 0)=x33java.lang.Object(List(x26))=x34Cond_906_0_length_NULL(x33, x27, x34)=956_0_length_Return(x0[0])∧0=x270=x351716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x26)), x3[11], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (117)    (Cond_906_0_length_NULL(>=(x37, 0), x37, java.lang.Object(List(x36)))=956_0_length_Return(x0[1])∧>=(x27, 0)=x33java.lang.Object(List(x26))=x34Cond_906_0_length_NULL(x33, x27, x34)=956_0_length_Return(x0[0])∧0=x270=x371716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x36))), java.lang.Object(List(x26)), x3[11], x0[0], java.lang.Object(List(x36)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (116) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (118)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x26)))=956_0_length_Return(x0[0]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), NULL, x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(NULL), java.lang.Object(List(x26)), x3[11], x0[0], NULL)∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (117) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (119)    (Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x26)))=956_0_length_Return(x0[0])∧Cond_906_0_length_NULL(TRUE, 0, java.lang.Object(List(x36)))=956_0_length_Return(x0[1]) ⇒ 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥NonInfC∧1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), java.lang.Object(List(x36)), x3[11], java.lang.Object(List(x26)))≥1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(java.lang.Object(List(x36))), java.lang.Object(List(x26)), x3[11], x0[0], java.lang.Object(List(x36)))∧(UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (114) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (120)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (118) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (121)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (119) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (122)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (115) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (123)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (121) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (124)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (120) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (125)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (122) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (126)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (123) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (127)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (124) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (128)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (125) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (129)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (126) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (130)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (127) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (131)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (128) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (132)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (129) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (133)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



    We simplified constraint (130) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (134)    ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])), ≥)∧[bni_77] ≥ 0∧0 ≥ 0∧[bni_77] ≥ 0∧0 ≥ 0∧[(-1)bni_77 + (-1)Bound*bni_77] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_78] ≥ 0)

  • COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_79] ≥ 0∧0 ≥ 0∧[bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_79] ≥ 0∧[(4)bni_79] ≥ 0∧0 ≥ 0∧[(3)bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0∧[1] ≥ 0)

  • 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_81] ≥ 0∧[bni_81] ≥ 0∧0 ≥ 0∧[bni_81 + (-1)Bound*bni_81] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_82] ≥ 0)

  • 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)
    • ((UIncreasing(1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)

  • COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
    • (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85] ≥ 0∧0 ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[(-1)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85] ≥ 0∧0 ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[(-1)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)

  • 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_87] ≥ 0∧0 ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[(-1)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_88] ≥ 0)

  • COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(-1)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(-1)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)

  • 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧0 ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(-1)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)

  • COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_93] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_94] ≥ 0)

  • 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

  • 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)
    • ((UIncreasing(1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(1716_0_length_ConstantStackPush(x1)) = 0   
POL(906_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(NULL) = 0   
POL(956_0_length_Return(x1)) = 0   
POL(java.lang.Object(x1)) = [2]x1   
POL(List(x1)) = [1] + [2]x1   
POL(Cond_906_0_length_NULL(x1, x2, x3)) = 0   
POL(>=(x1, x2)) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1766_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x2 + [-1]x1   
POL(COND_1766_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + [-1]x2   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(COND_1805_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + x4 + x3 + [-1]x2   
POL(1716_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x4 + x2 + [-1]x1   
POL(1805_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x3 + x2 + [-1]x1   
POL(>(x1, x2)) = 0   
POL(1788_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x2 + [-1]x1   
POL(COND_1747_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x4 + x3 + [-1]x2 + x1   
POL(1747_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + x2 + [-1]x1   
POL(&&(x1, x2)) = 0   
POL(<=(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(COND_1737_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = x6 + x3 + [-1]x2 + [2]x1   
POL(1737_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = x5 + x2 + [-1]x1   

The following pairs are in P>:

COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

The following pairs are in Pbound:

1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_1737_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 1747_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])

The following pairs are in P:

1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(=(%(x0[14], 2), 1)), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(>(x4[10], x0[10]), 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(&&(&&(>=(x4[3], 0), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(&&(>=(x4[1], 0), >=(x0[1], 0)), 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])

At least the following rules have been oriented under context sensitive arithmetic replacement:

906_0_length_NULL(0, x0)11716_0_length_ConstantStackPush(x0)1
906_0_length_NULL(x0, NULL)1956_0_length_Return(x0)1
906_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_906_0_length_NULL(>=(x1, 0), x1, java.lang.Object(List(x0)))1
906_0_length_NULL(+(x1, 1), x0)1Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

(31) Complex Obligation (AND)

(32) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
1716_0_length_ConstantStackPush(x0) → 906_0_length_NULL(0, x0)
906_0_length_NULL(x0, NULL) → 956_0_length_Return(x0)
906_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_906_0_length_NULL(x1 >= 0, x1, java.lang.Object(List(x0)))
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 906_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(14): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[14]), x2[14], x3[14], x1[14]) → COND_1766_1_MAIN_INVOKEMETHOD(!(x0[14] % 2 = 1), 956_0_length_Return(x0[14]), x2[14], x3[14], x1[14])
(11): COND_1805_1_MAIN_INVOKEMETHOD1(TRUE, 956_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x4[11], x3[11]) → 1716_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])
(10): 1805_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10]) → COND_1805_1_MAIN_INVOKEMETHOD1(x4[10] > x0[10], 956_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x4[10], x3[10])
(7): 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_1766_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 1788_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 1766_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_1766_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 956_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_1747_1_MAIN_INVOKEMETHOD(TRUE, 956_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 1766_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 1747_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_1747_1_MAIN_INVOKEMETHOD(x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 956_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(1): 1737_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_1737_1_MAIN_INVOKEMETHOD(x4[1] >= 0 && x0[1] >= 0, 956_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])

(3) -> (4), if ((x4[3] >= 0 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5* TRUE)∧(956_0_length_Return(x0[3]) →* 956_0_length_Return(x0[4]))∧(x1[3]* x1[4])∧(x2[3]* x2[4])∧(x4[3]* x4[4])∧(x3[3]* x3[4]))


(4) -> (5), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[5]))∧(x2[4]* x2[5])∧(x3[4]* x3[5])∧(x1[4]* x1[5]))


(5) -> (6), if ((0 = x0[5] % 2* TRUE)∧(956_0_length_Return(x0[5]) →* 956_0_length_Return(x0[6]))∧(x2[5]* x2[6])∧(x3[5]* x3[6])∧(x1[5]* x1[6]))


(14) -> (6), if ((!(x0[14] % 2 = 1) →* TRUE)∧(956_0_length_Return(x0[14]) →* 956_0_length_Return(x0[6]))∧(x2[14]* x2[6])∧(x3[14]* x3[6])∧(x1[14]* x1[6]))


(6) -> (7), if ((1716_0_length_ConstantStackPush(x2[6]) →* 956_0_length_Return(x0[7]))∧(x1[6]* x1[7])∧(x3[6]* x3[7])∧(x2[6]* x2[7]))


(7) -> (10), if ((1716_0_length_ConstantStackPush(x3[7]) →* 956_0_length_Return(x0[10]))∧(x1[7]* x1[10])∧(x2[7]* java.lang.Object(List(x2[10])))∧(x0[7]* x4[10])∧(x3[7]* x3[10]))


(10) -> (11), if ((x4[10] > x0[10]* TRUE)∧(956_0_length_Return(x0[10]) →* 956_0_length_Return(x0[11]))∧(x1[10]* x1[11])∧(java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11])))∧(x4[10]* x4[11])∧(x3[10]* x3[11]))


(4) -> (14), if ((1716_0_length_ConstantStackPush(x1[4]) →* 956_0_length_Return(x0[14]))∧(x2[4]* x2[14])∧(x3[4]* x3[14])∧(x1[4]* x1[14]))



The set Q consists of the following terms:
1716_0_length_ConstantStackPush(x0)
906_0_length_NULL(x0, NULL)
906_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_906_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(33) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 9 less nodes.

(34) TRUE

(35) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
1716_0_length_ConstantStackPush(x0) → 906_0_length_NULL(0, x0)
906_0_length_NULL(x0, NULL) → 956_0_length_Return(x0)
906_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_906_0_length_NULL(x1 >= 0, x1, java.lang.Object(List(x0)))
Cond_906_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 906_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(7): 1788_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 1805_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(0): 1716_1_MAIN_INVOKEMETHOD(956_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 1737_1_MAIN_INVOKEMETHOD(1716_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])


The set Q consists of the following terms:
1716_0_length_ConstantStackPush(x0)
906_0_length_NULL(x0, NULL)
906_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_906_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(36) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(37) TRUE